我正在尝试编写一个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脚本出错的建议吗?
答案 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
为网址中的查询参数添加键值对