我有一个用 python 编写的关于 google-app-engine 的应用程序。我想通过代理从我的应用程序中获取 url。我找到了两种从 appengine 获取远程 url 的方法:
- 使用urlfetch
- 使用python内置的urllib2
查看 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。在文档中说,无法更改 ip。我想,这意味着我无法以某种方式手动更改 HTTP 标头中的 ip,但我仍然可以使用代理。
但是,我想确切地知道,是否可以通过 appengine 上的代理获取 url 并停止打破我的头:)。