В настоящее время я пытаюсь запросить рыночные котировки у Yahoo Finance API (YQL) для проекта, над которым я работаю, и у меня возникли небольшие проблемы с созданием URL-адреса запроса.
Если я иду на консоль YQL и запрашиваю кавычки для Microsoft, она возвращает мне следующий URL:
https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20symbol%20in%20(%22MSFT%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
Если я добавлю это непосредственно в свой код и выполню запрос с этим URL, он будет работать нормально, и я смогу получить те данные, которые мне нужны. Однако я хочу иметь возможность создать свой собственный URL-адрес запроса, чтобы я мог выбирать, для каких акций я хочу получить информацию, не копируя ссылку с консоли YQL.
Теперь, когда я пытаюсь создать свой собственный URL (следуя примерам YQL на сайте), я сталкиваюсь с проблемой; мой URL не кодирует себя так же, как консоль, и я не могу получить информацию обратно.
Вот код, который я использую для создания своего собственного URL:
$yql_base_url = "https://query.yahooapis.com/v1/public/yql?q=";
$yql_query = "select * from yahoo.finance.quote where symbol in ('MSFT')";
$yql_query_url = $yql_base_url . urlencode($yql_query);
$yql_query_url .= "&format=json&diagnostics=true";
$yql_query_url .= "&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=";
Теперь, когда я распечатываю этот URL рядом с тем, который скопирован с консоли YQL, легко увидеть, что они совсем не совпадают, что, скорее всего, не работает.
Для сравнения,
мой URL:
https://query.yahooapis.com/v1/public/yql?q=select+%2A+from+yahoo.finance.quote+where+symbol+in+%28%27MSFT%27%29&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
URL консоли YQL:
https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20symbol%20in%20(%22MSFT%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
Может кто-нибудь, кто использовал это раньше, или может увидеть какие-либо ошибки, которые я мог бы сделать, предложить какую-то помощь, это было бы очень признательно.
Учебник по YQL у меня был следующий:
https://developer.yahoo.com/yql/guide/yql-code-examples.html#yql_php
ты можешь попробовать rawurlencode
вместо. Однако размещенный вами URL прекрасно работает в моем браузере.
Других решений пока нет …