使用Python httplib“HTTPConnection”对象,如何在没有值的情况下发送标头?

时间:2013-03-01 19:50:35

标签: python http httplib

我有以下代码,但httplib仍然将标题'emptyheader'视为键:值对。

h = httplib.HTTPConnection("somewhere:5000")
headers = {}
headers['emptyheader'] = None
h.request('POST', '/somewhere', '', headers)

如何发送合理的请求,但使用无值的标题'emptyheader'?

2 个答案:

答案 0 :(得分:1)

将标头值设置为''

headers['emptyheader'] = ''

会输出:

emptyheader: \r\n

符合HTTP specification for message headers

答案 1 :(得分:0)

使用httplib无法做到这一点。 'headers'参数必须是字典。然后,httplib将标头构造为以冒号分隔的名称 - 值对。

我认为请求模块做同样的事情。

因此,作为一种选择,请尝试curl:

subprocess.call(['curl', '-i', '-H', '"emptyheader"', '"http://somewhere:5000/somewhere"'])

但是,我不确定你为什么需要它:http标头是关键:设计值对。