Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to iterate over all request headers in webapp RequestHandler using python?

I need to iterate over all request header objects and print it in App Engine. I get error when trying to use for cycle. How to do that correctly?

class MainHandler(webapp.RequestHandler):
    def get(self):
        for e in self.request.headers:
            self.request.headers(e + "<br />")

I get error: AttributeError: EnvironHeaders instance has no __call__ method

like image 668
J.Olufsen Avatar asked Feb 10 '12 10:02

J.Olufsen


2 Answers

Error is in self.request.headers(e + "<br />") line. You are trying to call the request.headers method.

I check the online help and found that self.request.headers is dict like object. You can check in https://developers.google.com/appengine/docs/python/gettingstarted/usingwebapp

To iterate over the headers you can use self.request.headers.items() or self.request.headers.keys()

like image 148
Nilesh Avatar answered Nov 01 '22 08:11

Nilesh


I think you mean self.response.write():

class MainHandler(webapp.RequestHandler):
    def get(self):
        for e in self.request.headers:
            self.response.write(e + "<br />")
like image 2
Fred Sauer Avatar answered Nov 01 '22 07:11

Fred Sauer