5

请帮助找出以 JSON 格式返回结果的必应搜索请求的参数。
文档“迁移 Bing 搜索 API 应用程序”告诉我们:
To authenticate a Bing Search API request with Windows Azure Marketplace, you must obtain an account key. This mode of authentication replaces the AppID used in the Bing Search API 2.0.

另一方面,同一文档提供了以下仍然使用 Appid 的示例:

http://api.search.live.net/xml.aspx?Appid=App&query=odata&sources=web&count=2

以下请求:

curl "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=%27xbox%27&$top=50&$format=json$accountKey=TPP....VRTWiq4=$Appid=conceptor"

导致以下错误:
The authorization type you provided is not supported. Only Basic and OAuth are supported

请给出一个 Bing 搜索 URL 的示例,该 URL 可用于 CURL 命令行以获取 JSON 格式的搜索结果。

4

3 回答 3

8

您需要在基本身份验证标头中将您的应用密钥作为 Base64 编码字符串发送。

Authorization: Basic {{ encoded_app_key }}

顺便说一句,上一个答案链接到旧 Bing api 的概述,因此如果您使用数据市场 api,则无用。

这是您使用 jQuery 的示例。

$.ajax({
    type:'POST',
    url:url,
    headers: {
        "Authorization": "Basic " + encodedAppKey
    }
}).done(function(data) { 
    alert(data);
});

有用的链接:http ://social.msdn.microsoft.com/Forums/windowsazure/en-US/9f085915-81b6-488d-a348-1c3ca769d44f/migrating-to-windows-azure-bing-search-api-with-jquery -jsonp

于 2013-07-24T22:35:08.687 回答
1

现在,您应该只使用 datamarket.azure 风格的 API 调用。旧的不能再工作了。身份验证的一个很大区别是您不需要在查询 URL 中包含您的 AppID。将弹出一个身份验证窗口,您只需提供您的默认帐户密钥(或您在帐户中创建的任何密钥)。看到这个非常好的新 Bing API 总结

于 2012-10-12T19:44:54.913 回答
1

所有这些答案现在都已经过时了。您必须使用 JSONP 才能向不同的 URL 发出请求。

在 ajax 请求中使用:

类型:'POST',jsonp:“jsonp”,

于 2017-03-16T22:19:34.127 回答