我在使用python编写的google-app-engine上有一个应用程序。我想从我的应用程序通过代理获取URL。我发现了两种从appengine中获取远程URL的方法:
查看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并停止破坏我的头脑。)。
答案 0 :(得分:1)
我认为这是此处提到的App-Engine中的一个错误
https://code.google.com/p/googleappengine/issues/detail?id=544
故障单已关闭,但据我所知(在SDK 1.9.8上),错误仍然存在
人们为Java和Python引擎编写了一些代码/补丁我尚未尝试过