發出 HTTP(S) 要求

區域 ID

REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。此代碼不對應至國家/地區或省份,即使部分區域 ID 可能與常用的國家/地區和省份代碼相似。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是這段時間前建立的現有應用程式,網址可選擇是否包含地區 ID。

進一步瞭解區域 ID

本頁說明如何透過 App Engine 應用程式發出 HTTP(S) 要求。

如要進一步瞭解要求大小上限和透過網址擷取要求傳送的標頭,請參閱「傳出要求」一文。

發出 HTTP 要求

如要發出 HTTP 要求,請照常使用 http 套件,但建立用戶端時請改用 urlfetch.Clienturlfetch.Client 傳回使用 urlfetch.Transport*http.Client,這是 http.RoundTripper 介面的實作項目,會使用網址擷取 API 發出要求。

下列程式碼片段示範如何執行基本的 HTTP GET 要求:

import (
	"fmt"
	"net/http"

	"google.golang.org/appengine"
	"google.golang.org/appengine/urlfetch"
)

func handler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	client := urlfetch.Client(ctx)
	resp, err := client.Get("https://www.google.com/")
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	fmt.Fprintf(w, "HTTP GET returned status %v", resp.Status)
}

停用重新導向

如果您使用網址擷取服務,預設情況下,基礎網址擷取服務最多會追蹤五次重新導向。這些重新導向可能會將授權標頭等私密資訊轉送至重新導向目的地。如果應用程式不需要 HTTP 重新導向,建議停用重新導向。

如要禁止網址擷取服務追蹤重新導向連結,請將從 urlfetch 套件傳回的 http.Client CheckRedirect 欄位設為傳回 http.ErrUseLastResponse。這適用於 appengine/urlfetchappengine/v2/urlfetch。例如:

client := urlfetch.Client(ctx)
client.CheckRedirect = func(*http.Request, []*http.Request) error {
  return http.ErrUseLastResponse
}

發出 HTTPS 要求

根據預設,基礎網址擷取服務會驗證所連線主機的憑證,如果憑證不符,就會拒絕要求。您不需要明確保護要求。

停用主機憑證驗證

如要停用自動驗證主機憑證的功能,可以手動建立一次傳輸,並將 AllowInvalidServerCertificate 設定成 true

向其他 App Engine 應用程式發出要求

發出要求至其他 App Engine 應用程式時,App Engine 應用程式必須在要求中加入 X-Appengine-Inbound-Appid 標頭以表明自己的身分。如果您指示網址擷取服務不要追蹤重新導向,App Engine 會自動在要求中加入這個標頭。

如要瞭解如何停用重新導向,請參閱「停用重新導向」。

後續步驟

如要瞭解網址擷取服務,例如透過網址擷取要求傳送的標頭,請參閱傳出要求一文。