为什么请求库会在我设置的标题中添加额外的标题?

时间:2018-06-23 01:30:10

标签: python python-3.x http-headers python-requests

当我设置以下自定义标头时,我试图利用请求库在python上进行发布请求:

User-Agent: MBAM-C
Content-Type: application/json
Authorization: True
Content-Length: 619
Connection: Close

但是,当它发送带有自定义标头的请求时,会添加自己的标头,从而导致服务器的请求响应不正确。

User-Agent: MBAM-C
Accept-Encoding: gzip, deflate
Accept: */*
Connection: Close
Content-Type: application/json
Authorization: True
Content-Length: 559

1 个答案:

答案 0 :(得分:4)

这是由于请求项目的设计目标所致。

此行为记录在here中。如果该库需要更正内容长度或添加所需的标头,则可能需要使用较低级别的库。要求帐单本身为:“一个为人类而建的优雅而简单的Python HTTP库。”其中一部分是广告,它可以接受压缩内容和所有mime类型。

  

注意:自定义标头的优先级低于更具体的信息源。例如:

     如果在.netrc中指定了凭据,则

使用headers =设置的授权标头将被覆盖,而auth =参数将覆盖它。   如果您脱离主机重定向,则将删除授权标头。   URL中提供的代理凭证将覆盖Proxy-Authorization标头。   当我们确定内容的长度时, Content-Length标头将被覆盖