Postman发送POST请求正常但Python requests报413错误如何解决?
413错误的核心原因是请求体大小超过服务端配置的上限,结合Postman请求正常、Python requests请求报错的场景,可按以下步骤排查:
- 第一步:对比两边请求体的实际大小和内容
打印requests请求中data/json参数的完整内容,和Postman的Body配置做逐字段对比,确认requests没有多传冗余字段、大体积附属内容(比如误把本地缓存文件、二进制内容塞进请求体),保证两边请求的Payload结构、大小完全一致。 - 第二步:对齐请求头配置
对比Postman和requests的Content-Type请求头:
如果Postman用的是application/x-www-form-urlencoded格式,requests就不要用json=参数传参,改用data=参数提交表单数据,同一份内容下JSON格式的体积会比表单格式大,很容易触发大小限制。
如果Postman用的是multipart/form-data格式,requests要对应使用files参数提交表单文件,不要把文件内容转成字符串塞进data里。
参考示例代码:
# 表单格式提交示例 headers = {"Content-Type": "application/x-www-form-urlencoded"} resp = requests.post("你的接口地址", data={"key1":"value1", "key2":"value2"}, headers=headers)
- 第三步:开启分块传输
Postman默认对大请求开启分块传输,requests默认关闭该特性,你可以给请求添加stream=True参数,开启分块传输拆分大请求体,避免单次提交的Payload超过上限:
resp = requests.post("你的接口地址", json=你的参数, stream=True)
- 第四步:对齐客户端标识
部分服务端会对非浏览器、非Postman的请求设置更严格的限流规则,你可以把requests的User-Agent请求头改成和Postman完全一致后重试。
内容的提问来源于stack exchange,提问作者lost_phd
相关产品推荐
相关产品推荐

