python reqeusts 请求时headers指定content length后 请求不响应

解释:
HTTP头部中的Content-Length字段表示请求体的大小,用字节来表示。当你在使用Python的requests库进行请求时,如果你手动设置了Content-Length,但实际发送的请求体大小与Content-Length头部声明的大小不一致,服务器可能会认为这是一个无效的请求或者导致连接超时,因此服务器不会响应。

解决方法:

确保你发送的请求体大小与Content-Length头部声明的大小完全一致。
如果你在请求中不需要发送请求体(例如GET请求),则应该移除Content-Length头部,让requests库自动计算请求体大小。
如果你需要发送请求体,并且请求体是动态生成的,确保在发送请求时请求体已经完全生成,并且大小已经固定下来,再设置Content-Length。
示例代码:

python
import requests

# 示例请求体
data = b'your request data here'
headers = {
    'Content-Type': 'application/json',
    'Content-Length': str(len(data))  # 确保长度正确
}

response = requests.post('http://example.com', data=data, headers=headers)

确保在发送请求时,请求体数据已经准备好,并且Content-Length头部的值是准确的字节长度。如果你在请求中不需要发送请求体,则不应该设置Content-Length,除非你清楚自己在做什么。

posted @ 2024-03-24 20:17  wan了个蛋  阅读(153)  评论(0编辑  收藏  举报