php - PHP 中 Bing 搜索的 Windows Azure 身份验证

标签 php http authentication azure header

我正在尝试使用 Windows Azure Marketplace API 执行 Bing 搜索,我已经下载了他们的指南和示例代码。该代码准备了带有基本身份验证的 HTTPS 请求,但是我不断收到以下错误:

警告:file_get_contents(https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%27washburn%27&Adult=%27Off%27&$top=50&$format= Atom): 无法打开流:连接被拒绝

php代码(来自微软的文档):

$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:8888base64_encode($accountKey.":".$accountKey) ,你为什么需要 $accountKey : 之前和之后,当使用浏览器时,您应该将用户名留空,只在密码字段中输入帐户 key 吗?

最佳答案

我已经解决了这个问题,以下是我为 future 会做同样事情的人找到的内容:

我注释掉了其中的行:

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

并且还设置 base64_encode("ignored:".$accountKey)

根据我在 MSDN 上读到的内容,用户名部分被认为是被忽略,所以它的值是什么并不重要。我在想也许 key 中的长度或特殊字符把事情搞砸了,所以我用ignored(或者任何真正的东西)替换它。

这就成功了,我可以解析返回的 JSON 数据。祝你好运!

关于php - PHP 中 Bing 搜索的 Windows Azure 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845672/

相关文章:

php - 在 yaml 中添加新表时 CRUDlex 不起作用

php - 从 cgridview 中的按钮访问 $data 变量

php - Laravel:vue 组件不渲染

php - 架构决策 : main site, 论坛、博客

security - HSTS header 真的有助于抵御 MITM 攻击吗?

rest - 如何在 go-restful 中获取完整的主机和 url

python - 处理Python HTTP连接超时

ssl - 如何为 javax.xml.ws.Service 配置 SSL 套接字?

security - 登录后更新用户的lastLogin属性

android - 通过浏览器的 native Facebook 登录体验