请求准备 url,值错误
Requests prepare url, value wrong
我在发送请求之前使用 Request 中的 prepare() 来准备 url。但是函数 returned 的值是不正确的。就像你看到的参数 codif= 我发送了一个值列表,结果必须是 codif=7,110 但请求 return 我这个 codif%3D=7%2C110 实际上是行不通的。
你有解决这个问题的办法吗?
from requests import Request
dict_data = {
'note':['716'],
'codif':[7, 110]}
request_parameters = {
'note=' : dict_data['note'],
'codif=' : ','.join([str(i) for i in dict_data['codif']]),
}
p = Request('GET', "https://test.intranert.com/api/light?", params=request_parameters).prepare()
p.url
输出:'https://test.intranert.com/api/light?note%3D=716&codif%3D=7%2C110'
期望:'https://test.intranert.com/api/light?note=716&codif=7,110'
谢谢,
那是因为浏览器通过 ASCII table 键码中的十六进制表示形式对 URL 输入进行编码。看一下this:可以看到,逗号的十六进制是2C,所以没问题。
我在发送请求之前使用 Request 中的 prepare() 来准备 url。但是函数 returned 的值是不正确的。就像你看到的参数 codif= 我发送了一个值列表,结果必须是 codif=7,110 但请求 return 我这个 codif%3D=7%2C110 实际上是行不通的。
你有解决这个问题的办法吗?
from requests import Request
dict_data = {
'note':['716'],
'codif':[7, 110]}
request_parameters = {
'note=' : dict_data['note'],
'codif=' : ','.join([str(i) for i in dict_data['codif']]),
}
p = Request('GET', "https://test.intranert.com/api/light?", params=request_parameters).prepare()
p.url
输出:'https://test.intranert.com/api/light?note%3D=716&codif%3D=7%2C110'
期望:'https://test.intranert.com/api/light?note=716&codif=7,110'
谢谢,
那是因为浏览器通过 ASCII table 键码中的十六进制表示形式对 URL 输入进行编码。看一下this:可以看到,逗号的十六进制是2C,所以没问题。