Python请求:头名称无效

Python请求:头名称无效,python,python-requests,Python,Python Requests,我正在尝试发送一个标题为“:hello”的请求。但是,前导冒号会导致脚本无法正常运行,并发出此回溯: Traceback (most recent call last): (为了我的隐私,删除了前几行) 有解决办法吗?我的剧本是: import requests headers = {'user-agent': 'alsotesting', ':hello': 'test'} requests.post("my server", headers=headers) 正如您的错误所述,:head

我正在尝试发送一个标题为“:hello”的请求。但是,前导冒号会导致脚本无法正常运行,并发出此回溯:

Traceback (most recent call last):
(为了我的隐私,删除了前几行)

有解决办法吗?我的剧本是:

import requests
headers = {'user-agent': 'alsotesting', ':hello': 'test'}
requests.post("my server", headers=headers)

正如您的错误所述,
:header
不是有效的HTTP头名称(您不能以“:”开头头”-请参阅)。你应该改变

headers = {'user-agent': 'alsotesting', ':hello': 'test'}

编辑:HTTP/2使用以冒号开头的伪头字段(请参阅)。此外,如前所述,您可能会在Chrome的开发者工具中看到一些以冒号开头的标题,当Chrome使用SPDY与web服务器进行对话时可能会出现这种情况,还有HTTP/2(基于SPDY/2),它们对应于伪标题。如文档中所述,伪头字段不是HTTP头字段


总之,标准HTTP协议不允许以冒号开头的头字段,因此您会得到
无效头名称
错误

错误消息说明一切:
:头
不是有效的HTTP头名称。它不能以
开头,但需要以冒号开头才能使用协议。有几个已知的浏览器实例能够发送这些请求。例如:instagram.com使用“:authority”标题。@Rob你能举例说明你的意思吗,也许可以加上一个参考?我想你可能会感到困惑。例如,instagram有一个“:authority”标题。下图:以冒号开头的头违反了HTTP协议。它是分隔符的一部分,分隔符不能是标题名称的一部分。(详见RFC 2616第2.2节和第4.2节)。因此,
httplib
拒绝标题是正确的。我意识到这一点,但某些标题(例如instagram)的名称中有冒号,因此如何不阻止它们?puu.sh/m1iu4/0e7a71362a.pngI认为正在使用SPDY协议()或任何其他不同于HTTP的协议。HTTP头不允许这种格式,但它在x-request-with头中说它是HTTP。它来自chrome网络控制台,只捕获http请求。据我所知,你能发布整个请求和响应吗?
headers = {'user-agent': 'alsotesting', ':hello': 'test'}
headers = {'user-agent': 'alsotesting', 'hello': 'test'}