Python requests发送POST请求无响应无报错,Postman正常如何排查?
问题分析与解决
你的代码存在两个关键问题:
- 命名冲突:导入了
json模块后,又用同名变量json存储请求数据,这种写法会覆盖模块引用,后续无法调用json模块的功能,属于不良编码习惯。 - 请求参数传递错误:
requests.post()的第二个位置参数是data(用于表单数据),而你需要发送JSON格式的请求体,必须显式指定json=参数,否则字典会被当成表单数据发送,和Postman的请求格式不匹配,导致服务器无法正确解析。
修正后的代码:
import requests url = "http://localhost:8080/api/v1/post_info" payload = { "vaishnavi": 22, "uni_didi": 34, "stokes": 31 } r = requests.post(url, json=payload) print(r.status_code) print(r.text)
补充说明:
- 将请求数据变量名改为
payload,避免和json模块冲突。 - 用
json=payload显式告知requests库将数据序列化为JSON格式发送,同时会自动设置Content-Type: application/json请求头,这和Postman发送JSON请求的行为完全一致。
如果问题仍存在,可以打印r.request.headers查看请求头是否正确,或用r.request.body查看实际发送的请求体内容,进一步排查问题。
内容的提问来源于stack exchange,提问作者Tyler durden
相关产品推荐
相关产品推荐

