简单的Python POST urlencode()
我正在尝试用Python向我的Node.js应用发送一个POST请求。以下是我的代码:
import urllib
import urllib2
url = my_url
values = {'email' : my_email,
'password' : my_password }
data = urllib.urlencode(values)
req = urllib2.Request(url,data)
response = urllib2.urlopen(req)
the_page = response.read()
print(the_page)
请求已经发送,但是参数似乎出现了问题,因为我收到的响应显示登录凭证无效。
我可以使用Chrome的Postman工具成功发送同样的请求,所以我知道问题不在我的API上。
总的来说,我可以用Python顺利发送GET请求,但不知为什么,当我尝试在POST请求中包含参数时,它们没有被正确处理。
我已经查看了urllib、urllib2和urlencode()的文档,但没有找到任何有用的信息。
1 个回答
0
我不再调试urllib2的问题了,因为我换用了requests,现在不再遇到这些问题。你也可以这样做:
import requests
print requests.post(my_url, data={'email': my_email, 'password': my_password}).text
这样写起来真好看,真优雅……如果你的jquery应用返回的是json格式的数据,你可以用“.json()”来代替“.text”。
你的问题似乎和保持cookies有关。要做到这一点,你可以使用一个requests会话。