req = urllib2.Request
var1 = req.get_header('var1', default=None)
logging.info(var1)
var2 = req.get_header('var2', default=None)
logging.info(var2)
var3= req.get_header('var3', default=None)
logging.info(var3)
var4 = req.get_header('var4', default=None)
logging.info(var4)
写上面的python脚本来解压缩http标头,但在Google App Engine上运行时会出现以下错误。
<type 'exceptions.TypeError'>: unbound method get_header() must be called with Request instance as first argument (got str instance instead)
Traceback (most recent call last):
File "/base/data/home/apps/s~##############/##########/@@@@@@@@@.py", line 10, in <module>
var1= req.get_header('var1', default=None)
App Engine的Python开发新手,因此无法找出错误。
答案 0 :(得分:4)
你似乎正在做一些非常奇怪的事情:你正在从你的处理程序向提供相同处理程序的URL发出web请求,然后尝试获取请求的标题你实际上是制造。你为什么要这样做?这完全没有意义。
我认为你真正想要做的是从已经传递给处理程序的请求对象中获取标题,这当然可以通过self.request
获得。
答案 1 :(得分:2)
你可以这样,
>>> req = urllib2.Request("http://www.google.com")
>>> response = urllib2.urlopen(req)
>>> response.info().getheader('Content-Type')
'text/html; charset=ISO-8859-9'
>>>