通过谷歌应用引擎上的代理获取网址

时间:2012-06-18 16:07:31

标签: python google-app-engine

我在使用python编写的google-app-engine上有一个应用程序。我想从我的应用程序通过代理获取URL。我发现了两种从appengine中获取远程URL的方法:

  1. 使用urlfetch
  2. 使用python内置urllib2
  3. 查看urlfetch的文档,我没有找到任何设置代理的方法。所以我开始玩urllib2。 我试过这个:

    class MainHandler(webapp.RequestHandler):
        def get(self):
            proxy_handler = urllib2.ProxyHandler({'http': "210.246.88.46:8080",})
            opener = urllib2.build_opener(proxy_handler)
            resp = opener.open("http://whatsmyuseragent.com/", timeout=20)
            self.response.out.write(resp.read())
    

    但看起来像appengine会忽略代理并使用自己的ip获取url。在结果页面显示应用程序的ip,而不是代理的ip。 在documentation,据说,ip无法改变。我想,这意味着我无法以某种方式在HTTP标头中手动更改ip,但我仍然可以使用代理。

    但是,我想确切地知道,是否可以通过代理在appengine上获取url并停止破坏我的头脑。)。

1 个答案:

答案 0 :(得分:1)

我认为这是此处提到的App-Engine中的一个错误

https://code.google.com/p/googleappengine/issues/detail?id=544

故障单已关闭,但据我所知(在SDK 1.9.8上),错误仍然存​​在

人们为Java和Python引擎编写了一些代码/补丁我尚未尝试过