Проверка подлинности Windows Azure для поиска Bing на PHP
Я пытаюсь выполнить поиск в Bing с помощью API Windows Azure Marketplace, я загрузил их руководство и пример кода. Код подготавливает HTTPS-запрос с базовой аутентификацией, однако я постоянно получаю следующую ошибку:
Warning: file_get_contents(https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%27washburn%27&Adult=%27Off%27&$top=50&$format=Atom): failed to open stream: Connection refused
Код php (из документа Microsoft):
$context = stream_context_create(array(
'http' => array(
'proxy' => 'tcp://127.0.0.1:8888',
'request_fulluri' => true,
'header' => "Authorization: Basic " . base64_encode($accountKey.":".$accountKey)
)
));
Кто-нибудь знает, в чем причина ошибки, пожалуйста? Я правильно установил $accountKey
и протестировал его в браузере. Что меня немного озадачивает, так это 127.0.0.1:8888
и также base64_encode($accountKey.":".$accountKey)
, почему вам нужно $accountKey
как до, так и после :
, в то время как при использовании браузера вы должны оставить имя пользователя пустым и просто ввести ключ учетной записи в поле пароля?
1 answers
Я решил эту проблему, и вот что я нашел для будущих людей, которые будут делать то же самое:
Я прокомментировал строку, в которой говорится:
'proxy' => 'tcp://127.0.0.1:8888',
'request_fulluri' => true,
, А также установите base64_encode("ignored:".$accountKey)
вместо
Основываясь на том, что я прочитал в MSDN, часть имени пользователя, как говорят, игнорируется, поэтому не должно иметь значения, какое это значение. Я подумал, что, возможно, длина или специальные символы в ключе все испортили, поэтому я заменил его на ignored
(или что-нибудь действительно).
Что сделал трюк, и я могу проанализировать возвращенные данные JSON. Удачи!