简单的Python POST urlencode()

时间:2014-07-12 17:06:09

标签: python python-module

我正在尝试使用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)

请求已发送,但由于我收到的响应与无效的登录凭据相对应,因此某些参数变得混乱。

我可以使用Postman for Chrome做同样的请求,它运行得很好。所以我知道这不是我的API。

基本上我可以用Python做GET请求,但出于某种原因,当我尝试在POST中包含参数时,它们没有正确翻译。

我已经查看了urllib,urllib2和urlencode()的文档。我找不到任何有用的东西

1 个答案:

答案 0 :(得分:0)

我不再调试urllib2问题,因为我切换到请求,我不再拥有它们,你可以这样做:

import requests

print requests.post(my_url, data={'email': my_email, 'password': my_password}).text

如此可读,如此优雅...... 如果您的jquery应用程序返回json,您可以使用" .json()"而不是" .text"

您的问题似乎必须保留Cookie,为此,您可以使用requests session