报这个错误的原因是请求头里面包含以“:”开头的键 如’:path’
这些键是http2.0需要的,但是httplib只支持http1.1,不过很容易解决。
- 找到httplib.py这个文件,比如我的centos中,这个文件就在/usr/lib64/python2.7/httplib.py中。
vi /usr/lib64/python2.7/httplib.py
找到报错的行,这一行大约是1014行。
raise ValueError('Invalid header name %r' % (header,))
原来是因为前面加入了一个正则表达,专门用来匹配请求头中的含有:的键。
直接把这句话注视掉,并在后面加一个pass,或者直接把整一个if语句注视掉都可以。
然后:wq保存,重新启动脚本,成功运行。