为什么python会改变原始参数

时间:2017-04-01 04:06:11

标签: python python-requests

我想发送一个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',参数更改。有谁可以帮助我?

1 个答案:

答案 0 :(得分:0)

Python是为您编码信息的URL。在HTTP传输期间不允许某些字符(因为它们在协议中提供特定功能)。如果您想使用:(空格)等非法字符,则可以将其编码为%3A%20。 URL编码是标准化的,因此您可以发送您的信息(后编码),然后服务器将接收它并对其进行解码,从而使它们接收您的原始信息。

这里有一个更深入的分析: https://www.thoughtco.com/encoding-urls-3467463