HTTP(S) リクエストの発行

このページでは、App Engine アプリから HTTP(S) リクエストを発行する方法について説明します。

App Engine は、URL 取得サービスを使用して、送信 HTTP(S) リクエストを発行します。リクエストのサイズ上限と URL 取得リクエストで送信されるヘッダーの詳細については、送信リクエストをご覧ください。

HTTP リクエストの発行

送信 HTTP リクエストを発行するには、通常どおり http パッケージを使用しますが、クライアントは urlfetch.Client を使用して作成します。urlfetch.Client*http.Client を返しますが、これは urlfetch.Transport を使用します。これは http.RoundTripper インターフェースの実装であり、URL Fetch 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)
}

HTTPS リクエストの発行

Go API では、リクエストを明示的に保護する必要はありません。基盤となっている URL 取得サービスが、デフォルトで接続先ホストの証明書を検証し、証明書が一致しない場合はリクエストを拒否します。

ホスト証明書の検証を無効にする

ホスト証明書の自動検証を無効にするには、手動でトランスポートを作成し、AllowInvalidServerCertificatetrue に設定します。

別の App Engine アプリへのリクエストの発行

別の App Engine アプリにリクエストを発行する場合は、App Engine アプリでリクエストに X-Appengine-Inbound-Appid ヘッダーを追加して、その ID を表明する必要があります。

次のステップ

送信リクエスト内の URL 取得リクエストで送信されるヘッダーなど、URL 取得サービスについて学習します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine スタンダード環境