Проверка подлинности 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 как до, так и после :, в то время как при использовании браузера вы должны оставить имя пользователя пустым и просто ввести ключ учетной записи в поле пароля?

Author: Gapton, 2012-06-01

1 answers

Я решил эту проблему, и вот что я нашел для будущих людей, которые будут делать то же самое:

Я прокомментировал строку, в которой говорится:

'proxy' => 'tcp://127.0.0.1:8888',
'request_fulluri' => true,

, А также установите base64_encode("ignored:".$accountKey) вместо

Основываясь на том, что я прочитал в MSDN, часть имени пользователя, как говорят, игнорируется, поэтому не должно иметь значения, какое это значение. Я подумал, что, возможно, длина или специальные символы в ключе все испортили, поэтому я заменил его на ignored (или что-нибудь действительно).

Что сделал трюк, и я могу проанализировать возвращенные данные JSON. Удачи!

 8
Author: Gapton, 2012-06-01 07:34:47