我想发送一个http请求,但是params有问题,以下是我的代码:
my_url="mysite.com/api"
payload = {'start':"2017-04-01%2000:00:00",'end':"017-04-01%2023:59:59"}
r=requests.get(my_url,params=payload)
print r.request.url
发送的网址为"mysite.com/api?start=2017-04-01%252000%3A00%3A00&end=2017-04-01%252023%3A59%3A59'
,参数更改。有谁可以帮助我?
答案 0 :(得分:0)
Python是为您编码信息的URL。在HTTP传输期间不允许某些字符(因为它们在协议中提供特定功能)。如果您想使用:
和(空格)等非法字符,则可以将其编码为
%3A
和%20
。 URL编码是标准化的,因此您可以发送您的信息(后编码),然后服务器将接收它并对其进行解码,从而使它们接收您的原始信息。
这里有一个更深入的分析: https://www.thoughtco.com/encoding-urls-3467463