Python urllib2.HTTPError:HTTP错误401,使用新的Bing API进行查询(在azure marketplace中)

Python urllib2.HTTPError:HTTP错误401,使用新的Bing API进行查询(在azure marketplace中),python,authentication,urllib2,http-status-code-401,bing-api,Python,Authentication,Urllib2,Http Status Code 401,Bing Api,所以,我已经在堆栈溢出的相同屋顶下根据大多数答案进行了更正,我仍然无法解决这个问题 queryBingFor = "Google Fibre" quoted_query = urllib.quote(queryBingFor) account_key = "dslfkslkdfhsehwekhrwkj2187iwekjfkwej3" rootURL = "https://api.datamarket.azure.com/Bing/Search/v1/" searchURL = rootURL

所以,我已经在堆栈溢出的相同屋顶下根据大多数答案进行了更正,我仍然无法解决这个问题

queryBingFor = "Google Fibre"
quoted_query = urllib.quote(queryBingFor)
account_key = "dslfkslkdfhsehwekhrwkj2187iwekjfkwej3"

rootURL = "https://api.datamarket.azure.com/Bing/Search/v1/"
searchURL = rootURL + "Image?format=json&Query=" + quoted_query
cred = base64.encodestring(accountKey)

reqBing = urllib2.Request(url=searchURL)
author = "Basic %s" % cred
reqBing.add_header('Authorization',author)

readURL = urllib2.urlopen(reqBing)
我知道我在上面的代码中遗漏了一些东西,这给了我一个:

urllib2.HTTPError: HTTP Error 401: The authorization type you provided is not supported.  Only Basic and OAuth are supported
有没有关于问题可能是什么的线索


谢谢

下面是工作代码。我创建的问题是查询关键字的格式

 queryBingFor = "'google fibre'" # the apostrophe's required as that is the format the API Url expects. 
 quoted_query = urllib.quote(queryBingFor)

 rootURL = "https://api.datamarket.azure.com/Bing/Search/"
 searchURL = rootURL + "Image?$format=json&Query=" + quoted_query

 password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
 password_mgr.add_password(None, searchURL,username,accountKey)

 handler = urllib2.HTTPBasicAuthHandler(password_mgr)
 opener = urllib2.build_opener(handler)
 urllib2.install_opener(opener)
 readURL = urllib2.urlopen(searchURL).read()

这应该以各自的JSON格式给出结果。当我使用urllib2的httpbasicauthhandler时,我猜想密码已隐式转换为base64

username变量代表什么?