Python 当URL包含空格时,为什么urlfetch获得状态:400?

Python 当URL包含空格时,为什么urlfetch获得状态:400?,python,google-app-engine,url,urlfetch,http-status-code-400,Python,Google App Engine,Url,Urlfetch,Http Status Code 400,我们不能否认有成千上万的URL包含空格。我们不可能一一纠正 为什么urlfetch对于这种完全可以通过浏览器访问的URL会收到400个错误请求?如何克服这个问题?这是因为URL需要正确编码(如下所述)。确保任何带有空格的url都使用%20正确编码以代替任何空格。这是因为url需要正确编码(如下所述)。确保任何带有空格的url都使用%20正确编码以代替任何空格。除了我在自己的网站上创建的url之外,我还尝试了该url,而且我似乎仍然得到了200的响应代码。您使用的GAE SDK版本是什么?(不确定

我们不能否认有成千上万的URL包含空格。我们不可能一一纠正


为什么urlfetch对于这种完全可以通过浏览器访问的URL会收到400个错误请求?如何克服这个问题?

这是因为URL需要正确编码(如下所述)。确保任何带有空格的url都使用
%20
正确编码以代替任何空格。

这是因为url需要正确编码(如下所述)。确保任何带有空格的url都使用
%20
正确编码以代替任何空格。

除了我在自己的网站上创建的url之外,我还尝试了该url,而且我似乎仍然得到了200的响应代码。您使用的GAE SDK版本是什么?(不确定这是否会影响它,只是想知道我们是否在同一个平台上测试。)是的,我尝试了你链接的那个,以及(我刚刚制作的)。我上周下载了SDK。必须是最新版本。1.8.1于12日发布,但无论如何,我认为这不会影响它。(否则,我想以前可能会有更多关于同一问题的问题。)你是否用我上面的代码尝试过,看看你得到了什么?我这样检查:
self.response.write(result.content)
,它会给我谷歌的400错误页面。我也尝试过这个url,除了我刚刚在自己的网站上创建的一个,我似乎仍然得到了200的回复代码。您使用的GAE SDK版本是什么?(不确定这是否会影响它,只是想知道我们是否在同一个平台上测试。)是的,我尝试了你链接的那个,以及(我刚刚制作的)。我上周下载了SDK。必须是最新版本。1.8.1于12日发布,但无论如何,我认为这不会影响它。(否则,我想以前可能会有更多关于同一问题的问题。)你用我上面的代码试过了吗,看看你得到了什么?我这样检查:
self.response.write(result.content)
,它给了我谷歌的400错误页面。我承认没有别的办法,只能这样做。谢谢大家帮助我。我承认,没有别的办法,只能这样做。谢谢大家帮助我。
class Crawl(webapp2.RequestHandler):    
    def get(self):      
            from google.appengine.api import urlfetch
            url = "http://www.example.com/path/to a/page" #URL with a space
            result = urlfetch.fetch(url)
            self.response.write('url: %s' % (result.status_code)) ## Outputs 400
            self.response.write(content) # Gives me 400 error page