我使用Python请求发送GET请求。 GET请求参数包含包含双下划线的变量。例如:
example.com/index.php?__action=login&__location=hub
但是,当使用requests.get()
并检查使用的url时,它会完全删除包含双下划线的变量。这是我的榜样:
jsonData = json.dumps({
'foo': 'bar'
})
params = {
'data': urllib.quote_plus(jsonData),
'__action': 'login',
'__location': 'hub'
}
url = 'http://example.com/p/'
resp = request.get(url, params=params)
print resp.url
网址没有正确发送,它缺少包含双下划线的参数。
任何想法为什么?
答案 0 :(得分:0)
想出来。实际上它并没有显示URL中的参数(我以为我疯了)。但问题并不那么明显。
页面重定向后, resp.url
显示了该网址。它是重定向的,因为我没有使用https
,服务器只响应https
个请求。一个引起如此多头痛的拼写错误。
allow_redirects=False
告诉我requests
没有删除任何内容。