2

Windows Azure Marketplace API を使用して Bing 検索を実行しようとしています。ガイドとサンプル コードをダウンロードしました。コードは基本認証を使用して 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:

4

1 に答える 1

8

私はそれを解決しました、そしてこれは私が同じことをするであろう将来の人々のために私が見つけたものです:

私はそれが言う行をコメントアウトしました:

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

base64_encode("ignored:".$accountKey)代わりに設定します

私がMSDNで読んだ内容に基づくと、ユーザー名の部分は無視されると言われているので、それがどのような値であるかは問題ではありません。キーの長さや特殊文字がめちゃくちゃになっているのではないかと思っていたので、それをignored(または実際には何か)に置き換えました。

これでうまくいき、返されたJSONデータを解析できます。幸運を!

于 2012-06-01T07:34:47.487 に答える