在应用程序引擎上使用 urlfetch() 查询除 80 之外的端口上的 URL

dem*_*mos 1 port google-app-engine urlfetch

是否可以使用 urlfetch() 查询除 80 之外的端口上存在的 URL

我想从非标准端口上的服务器获取数据 -

http://example.com:8000/WebService?input=a

理想的示例是托管在非标准端口上的 Web 服务。

我可以用 appengine 以某种方式做到这一点吗?

adv*_*ait 5

应用程序引擎文档说您可以使用 Pythonurllib2发出请求,该请求将自动使用 Google 的 urlfetch 服务。使用urllib2您可以在主机名中指示端口号。

import urllib2
conn = urllib2.urlopen('http://www.google.com:80')
print conn.read()
Run Code Online (Sandbox Code Playgroud)

我还没有在 GAE 上测试过它,但我不明白为什么它不起作用。

编辑:

来自GAE 文档

要获取的 URL 可以使用以下范围内的任意端口号:80-90、440-450、1024-65535。如果 URL 中未提及端口,则该端口由方案隐含:http://... 是端口 80,https://... 是端口 443。

这意味着在使用标准 urlfetch API 时可以在 url 中指定端口。