我试图使用Microsoft Academic API并使用Python从他们的站点运行代码,但我的代码不断抛出InvalidURL: URL can't contain control characters
这是在浏览器中工作的URL:
https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?expr= Composite(AA.AuN=='jaime teevan')&count=2&attributes=Ti,Y,CC,AA.AuN,AA.AuId&subscription-key=<subscription_key>
(上面的调用是:https://docs.microsoft.com/en-us/academic-services/project-academic-knowledge/reference-evaluate-method上的一个示例)
我尝试使用下面的代码调用同一个示例,但它是有效的:
headers = {
# Request headers
'Ocp-Apim-Subscription-Key': '<KEY>',
}
params = urllib.parse.urlencode({
# Request parameters
'complete': '0',
'count': '1'
})
try:
conn = http.client.HTTPSConnection('api.labs.cognitive.microsoft.com')
conn.request("GET", "/academic/v1.0/evaluate?expr=Composite(AA.AuN==jaime teevan)&count=2&attributes=Ti,Y,CC,AA.AuN,AA.AuId", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
raise e
它抛出以下错误:
InvalidURL: URL can't contain control characters. '/academic/v1.0/evaluate?expr=Composite(AA.AuN==jaime teevan)&count=2&attributes=Ti,Y,CC,AA.AuN,AA.AuId' (found at least ' ')
有人能帮我弥补我所缺少的吗
使用原始字符串(r“myurl”)如下所示,并在有效时发布:
在URL上传递单引号、空格和其他字符时可能会很麻烦。在稍微慢一点之后,如果您尝试使用“请求”来代替呢
我刚刚测试了它,得到了一条401错误消息,这意味着请求通过了,但我缺乏授权
相关问题 更多 >
编程相关推荐