首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >URL不能包含控制字符- Python

URL不能包含控制字符- Python
EN

Stack Overflow用户
提问于 2020-11-18 16:56:47
回答 2查看 2K关注 0票数 1

我试图使用微软的学术API,并使用Python从他们的站点运行代码,但是我的代码总是抛出InvalidURL: URL can't contain control characters

这是在browser: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>中工作的URL (上面的调用是在:https://learn.microsoft.com/en-us/academic-services/project-academic-knowledge/reference-evaluate-method上的一个例子)

我试图使用下面的代码调用相同的示例,但它是有效的:

代码语言:javascript
运行
复制
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

它引发以下错误:

代码语言:javascript
运行
复制
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 ' ')

有人能帮我解决我缺少的东西吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-18 17:39:11

单引号、空格和其他字符在URL上传递它们时可能会很麻烦。慢下来一点之后,如果您尝试使用“请求”来代替呢?:

代码语言:javascript
运行
复制
import requests

headers = {
    # Request headers
    'Ocp-Apim-Subscription-Key': '<KEY>',
}

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" 
response = requests.get(url=url, headers=headers)
print(response.content)

我刚刚对它进行了测试,得到了401错误消息,这意味着请求通过了,但我缺乏授权。

票数 2
EN

Stack Overflow用户

发布于 2020-11-18 17:29:12

使用原始字符串(r“myurl”)如下所示,并在其工作时发布:

( r"/academic/v1.0/evaluate?expr=Composite(AA.AuN==jaime teevan)&count=2&attributes=Ti,Y,CC,AA.AuN,AA.AuId,headers)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64897679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档