制作成功的Python HTTP POST请求

时间:2017-04-07 11:57:38

标签: python python-3.x

我正在尝试编写一个python脚本,它将向桌面应用程序发出请求,监听8080端口。以下是我用来发出请求的代码。

import requests 

payload = {"url":"abcdefghiklmnopqrstuvwxyz=",
"password":"qertyuioplkjhgfdsazxvnm=",
"token":"abcdefghijklmn1254786=="}

headers = {'Content-Type':'application/json'}
r = requests.post('http://localhost:9015/login',params = payload, headers=headers)
response = requests.get("http://localhost:9015/login")
print(r.status_code)

发出请求后,我得到的响应代码为401.

但是,当我使用Postman应用程序尝试相同的操作时,我得到了成功的回复。以下是我在邮递员中提供的详细信息:

URL: http://localhost:9015/login
METHOD : POST
Headers: Content-Type:application/json
Body: {"url":"abcdefghiklmnopqrstuvwxyz=",
       "password":"qertyuioplkjhgfdsazxvnm=",
       "token":"abcdefghijklmn1254786=="}

我可以获得一些关于我的python脚本出错的建议吗?

1 个答案:

答案 0 :(得分:1)

您应该通过params,应该通过data,或者更好,json来自动设置Content-Type。所以,它应该是:

import json
r = requests.post('http://localhost:9015/login', data=json.dumps(payload), headers=headers)

r = requests.post('http://localhost:9015/login', json=payload)

params为网址中的查询参数添加键值对

相关问题