2017-05-29 53 views
0

这是我试过到目前为止的代码。与URL编码工作中requesthandler在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): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.write(url) 


app = webapp2.WSGIApplication([ 
    (r'/', MainPage), 
    (r'/data/(.*$)', Data), 
], debug=True) 

如果我打开这个网址在Chrome:

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

我知道这一定是明显的,但我无法找到如何得到这个工作。

回答

1

你能编码和解码的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,然后,用unquoting似乎urrllib解决问题,如果你能。