Python 2.7 在webapp2的requesthandler中使用url编码
这是我到目前为止试过的代码Python 2.7 在webapp2的requesthandler中使用url编码,python-2.7,webapp2,Python 2.7,Webapp2,这是我到目前为止试过的代码 class MainPage(webapp2.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.write('Hello, World!') class Data(webapp2.RequestHandler): def get(self, url):
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, World!')
class Data(webapp2.RequestHandler):
def get(self, url):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write(url)
app = webapp2.WSGIApplication([
(r'/', MainPage),
(r'/data/(.*$)', Data),
], debug=True)
如果我在chrome中打开此url:
http://127.0.0.1:8080/data/https://www.google.co.in/?gfe_rd=cr&ei=JAYsWerYJ8b08weOpqqAAQ&gws_rd=ssl
我得到了https://www.google.co.in/
而不是:
https://www.google.co.in/?gfe_rd=cr&ei=JAYsWerYJ8b08weOpqqAAQ&gws_rd=ssl
我知道这一定很明显,但我找不到如何让它工作。你能对url进行编码和解码吗?然后我建议使用类似
http://127.0.0.1:8080/data/https:%2F%2Fwww.google.co.in%2F%3Fgfe_rd=cr&ei=JAYsWerYJ8b08weOpqqAAQ&gws_rd=ssl
如果您这样编码,它将打印完整的url
import urllib
class Data(webapp2.RequestHandler):
def get(self, url):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write(urllib.unquote(url))
如果可以的话,使用编码的url,然后用urrllib取消引用似乎可以解决问题