python POST请求和空值

标签 python python-2.7 python-requests

我正在使用以下代码,在应用程序级别执行 POST 请求

url = 'http://www.webdev.com/web/POST'
headers = {'content-type': 'application/json'}
payload = {'name': 'name', 'status': 'success', 'newname': 'name'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
r.text
r.status_code
r.connection.close()

来自 Python 日志

send: 'POST /web/POST HTTP/1.1\r\nHost: www.webdev.com\r\nContent-Length: 189\r\nUser-Agent: python-requests/2.8.1\r\nConnection: keep-alive\r\nAccept: */*\r\nAccept-Encoding: gzip, deflate\r\n\r\n'
send: '{"name": "test1", "status": "sucsses", "newname": "name23"}'
reply: 'HTTP/1.1 200 OK\r\n'

但在应用程序级别,它为 3 个变量提供空值。

应用程序需要以下格式:

http://www.webdev.com/web/POST?name=test1&status=sucsses&newname=name23

我使用 curl 命令进行发布,应用程序获得了正确的值

最佳答案

没有传递您的参数作为 url 的一部分并在 POST 正文中发送它们,但服务器正在等待 GET 参数。

要将您的payload 作为 GET 参数传递,请使用 params关键字参数:

r = requests.post(url, params=payload, headers=headers)

根据您的 url 格式,您应该忽略传递 data,只需传递 params

祝你好运!

关于python POST请求和空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35197419/

相关文章:

python - 让扭曲服务器主动

python - 如何使用 Python 获取游标对象的值

python - CPython - 编译 dails,PyDateTime_FromTimestamp 未声明?

python - 我正在尝试从需要登录的网站中抓取 HTML,但没有获取任何数据

python - 如何在 python 中使用网址下载文件?通过浏览器下载可以,但不能通过python的请求下载

python - 是否有内置函数可以进行骨架化?

python - 将号码替换为其他号码

python - 嵌套字典 : sum values of same key of the dictionaries nested as a value of dictionary

python - 用多种颜色为 Tkinter 按钮着色

python - ImportError : No module named mechanize - XCode 6. 1 没有看到新安装的 python 库