适用于旧版捆绑服务的 URL Fetch

本页介绍如何使用 URL Fetch 服务发出 HTTP 和 HTTPS 请求以及接收响应。

请求

请求协议

应用可以使用 HTTP 或 HTTPS 提取网址。通过查看目标网址中的协议,可以推断具体应使用哪种协议。

需要提取的网址可以使用以下范围内的任意端口号:

  • 80 - 90
  • 440 - 450
  • 1024 - 65535

如果网址中未提及端口,则使用协议默认的端口。HTTP 请求使用端口 80,而 HTTPS 请求使用端口 443

请求方法

如果通过网址提取服务发出请求,则可以使用以下任意一种 HTTP 方法:

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH

请求可以包含 HTTP 标头,对于 POSTPUTPATCH 请求,还可以包含负载。

请求代理

请注意,URL Fetch 服务使用符合 HTTP/1.1 规范的代理来提取结果。

为了防止应用造成请求无限递归的情况,不允许请求处理程序提取自己的网址。由于使用其他方法也可能导致无限递归,因此,请谨慎决定是否允许您的应用为用户提供的网址提取请求。

请求标头

您的应用可以为传出请求设置 HTTP 标头。

例如,发送 HTTP POST 请求时,如果用户未明确设置 Content-Type 标头,系统会将标头设置为 x-www-form-urlencoded。这是 Web 表单使用的内容类型。

出于安全考虑,应用无法修改以下标头:

  • Content-Length
  • Host
  • Vary
  • Via
  • X-Appengine-Inbound-Appid
  • X-Forwarded-For
  • X-ProxyUser-IP

App Engine 会根据具体情况将这些标头设置为准确的值。例如,App Engine 通过请求数据计算 Content-Length 标头,并在发送之前将其添加到请求中。

下列标头会标明发出请求的应用的 ID:

  • User-Agent。此标头可以修改,但 App Engine 将附加一个标识符字符串,以使服务器能够识别 App Engine 请求。附加的字符串格式为 "AppEngine-Google; (+http://code.google.com/appengine; appid: APPID)",其中 APPID 是应用的标识符。
  • X-Appengine-Inbound-Appid。此标头无法修改,通过 URL Fetch 服务发送请求时会自动添加此标头。

请求超时

您可以为请求设置截止时限或超时。默认情况下,请求的超时为 10 秒。

安全连接和 HTTPS

通过使用 HTTPS 连接到安全服务器,您的应用可以安全地提取网址。请求和响应数据以加密形式通过网络进行传输。

响应

如果您使用的是 URL Fetch API,那么请注意,URL Fetch 服务将返回所有响应数据,包括响应、代码、标头和正文。

默认情况下,如果网址提取服务收到包含重定向代码的响应,该服务将进行重定向。服务最多遵循五个重定向响应,然后返回最终资源。

在开发服务器上使用 URL Fetch

当您的应用在计算机的 App Engine 开发服务器上运行时,对 URL Fetch 服务的调用将在本地处理。开发服务器使用您的计算机用于访问互联网的任何网络配置,直接从您的计算机连接到远程主机以提取网址。

在测试提取网址的应用功能时,请确保您的计算机可以访问远程主机。

网址提取服务的配额和限制

对于 Java 运行时,您可以使用标准 Java

如需了解网址提取服务配额,请参阅配额。如需查看应用的当前配额使用情况,请前往 Google Cloud 控制台中的“配额详情”页面。

前往“配额详情”页面

此外,使用网址提取服务时存在以下限制:

Limit Amount
Request size 10 megabytes
Request header size 16 KB (Note that this limits the maximum length of the URL that can be specified in the header)
Response size 32 megabytes
Maximum deadline (request handler) 60 seconds
Maximum deadline (Task Queue and cron job handler) 60 seconds