Python 请求模块 - 仅发送指定的 headers
Python requests module - send only specified headers
我需要向只有 'Host' & 'Content-Length' headers 的 Web 服务器发送 post 请求。我在传递给请求模块的字典中指定了这两个 headers,但它添加了 'Accept'、'Accept-Encoding'、
'User-Agent' headers.
Python代码:
headers = {'Content-Length': content_length, 'Host': 'Server-1:8080'}
r = requests.post(url, data=data, headers=headers)
print(r.request.headers)
实际请求 headers 已发送:
{'Accept': '*/*', 'Host': 'Server-1:8080', 'Content-Length': '3072', 'User-Agent': 'python-requests/2.6.0 CPython/3.4.1 Windows/7', 'Connection': 'keep-alive, 'Accept-Encoding': 'gzip, deflate'}
如何限制请求模块发送的headers?
从对 the docs 的阅读来看,这些似乎是会话级参数,您可以通过将它们的值设置为 None
.
来强制省略这些参数
headers = {'Content-Length': content_length, 'Host': 'Server-1:8080',
'User-Agent': None, 'Connection': None, 'Accept-Encoding': None}
我需要向只有 'Host' & 'Content-Length' headers 的 Web 服务器发送 post 请求。我在传递给请求模块的字典中指定了这两个 headers,但它添加了 'Accept'、'Accept-Encoding'、 'User-Agent' headers.
Python代码:
headers = {'Content-Length': content_length, 'Host': 'Server-1:8080'}
r = requests.post(url, data=data, headers=headers)
print(r.request.headers)
实际请求 headers 已发送:
{'Accept': '*/*', 'Host': 'Server-1:8080', 'Content-Length': '3072', 'User-Agent': 'python-requests/2.6.0 CPython/3.4.1 Windows/7', 'Connection': 'keep-alive, 'Accept-Encoding': 'gzip, deflate'}
如何限制请求模块发送的headers?
从对 the docs 的阅读来看,这些似乎是会话级参数,您可以通过将它们的值设置为 None
.
headers = {'Content-Length': content_length, 'Host': 'Server-1:8080',
'User-Agent': None, 'Connection': None, 'Accept-Encoding': None}