Question

I'm trying to programmatically POST rather than using a web form. To do this, I'm using the MultipartPostHander module downloaded from https://pypi.python.org/pypi/MultipartPostHandler/.

It seems to work well (ie. does the same thing that a web form POST request would do), except users.get_current_user() returns None in the POST page handler. In comparison, the same POST page handler returns the user info correctly, if the POST request is submitted by a web form.

Also tried with poster (http://atlee.ca/software/poster/index.html) and had the exact same issue.

Why could this be happening? Thank you in advance.

class first_page_handler(basehandler.BaseHandler):
     def get(self):
         user = users.get_current_user()
         if user:
            raw_upload_url = webapp2.uri_for('test_module')
            qimage_upload_url = r'http://localhost:8080'+raw_upload_url
            params = {'param1': 'param'}

            opener = urllib2.build_opener(multipost.MultipartPostHandler)
            urllib2.install_opener(opener)
            req = urllib2.Request(qimage_upload_url, params)

            response = urllib2.urlopen(req)   #  <<<< POST request submitted
            text_response = response.read().strip()
            return self.response.write("<html><body><p>"+text_response+"</p></body>
                                       </html>")
         else:
            login_url = users.create_login_url("/admin")
            context = {'login_url': login_url}
            self.render_response('admin/login.html', **context)

class post_page_hander(basehandler.BaseHandler):
    def post(self):
       user = users.get_current_user()    #  << Returns NONE
       return self.response.write("<html><body><p>"+user.email()+"</p></body></html>")
Was it helpful?

Solution

You're not setting any cookies on the request, so the server has no idea what the current user is. (What you're doing is unusual ... there is probably a better way of doing whatever it is you want to do.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top