简单的Python POST urlencode()

0 投票
1 回答
1924 浏览
提问于 2025-04-18 13:04

我正在尝试用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会话

撰写回答