使用Bing API搜索时出现401错误

时间:2016-06-19 17:03:52

标签: python bing-api

我访问了微软的网站,并试图实现他们在网上发布的代码,这是:

import http.client, urllib.request, urllib.parse, urllib.error, base64

headers = {
    # Request headers
    'xxxxxxxxxx': '{subscription key}',
}

params = urllib.parse.urlencode({
    # Request parameters
    'q': 'microsoft',
    'count': '10',
    'offset': '0',
    'mkt': 'en-us',
    'safeSearch': 'Moderate',
})

try:
    conn = http.client.HTTPSConnection('bingapis.azure-api.net')

conn.request("GET", "/api/v5/news/search?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

我收到401错误说"访问被拒绝,因为订阅密钥丢失。确保在向API"

发出请求时包含订阅密钥

我正在实施此功能时包含正确的订阅密钥,但我不确定是否有错误。

2 个答案:

答案 0 :(得分:0)

根据此文档https://msdn.microsoft.com/en-us/library/dn760783.aspx,需要标头Ocp-Apim-Subscription-Key。将其包含在您定义标题的位置,如下所示:

headers = {
    # Request headers
    'Ocp-Apim-Subscription-Key': '{subscription key}',
}

答案 1 :(得分:0)