ID wilayah
REGION_ID adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.
Pelajari ID region lebih lanjut.
Halaman ini menjelaskan cara menerbitkan permintaan HTTP(S) dari aplikasi App Engine Anda menggunakan layanan URL Fetch untuk runtime generasi kedua.
Sebelum mengikuti petunjuk di halaman ini, sebaiknya gunakan solusi idiom bahasa untuk menerbitkan permintaan HTTP(S) sebelum menggunakan layanan URL Fetch. Kasus penggunaan utama untuk menggunakan URL Fetch adalah saat Anda ingin menerbitkan permintaan HTTP(S) ke aplikasi App Engine lain dan menegaskan identitas aplikasi Anda pada permintaan tersebut.
Untuk mengetahui detail tentang batas ukuran permintaan dan header mana yang dikirim pada permintaan URL Fetch request, lihat Permintaan keluar.
Mengirimkan permintaan HTTP
Untuk menggunakan layanan URL-fetch guna mengirimkan permintaan HTTP(S) keluar,
panggil
paket urlfetch.
Untuk mengeluarkan permintaan HTTP keluar, gunakan paket http seperti biasa, tetapi buat klien menggunakan urlfetch.Client. urlfetch.Client
menampilkan *http.Client yang menggunakan urlfetch.Transport, yang merupakan
implementasi antarmuka
http.RoundTripper
yang membuat permintaan menggunakan URL Fetch API.
Cuplikan berikut menunjukkan cara melakukan permintaan GET HTTP dasar:
import (
"fmt"
"net/http"
"google.golang.org/appengine/v2"
"google.golang.org/appengine/v2/urlfetch"
)
func handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
client := urlfetch.Client(ctx)
resp, err := client.Get("http://www.google.com/")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer resp.Body.Close()
fmt.Fprintf(w, "HTTP GET returned status %v", resp.Status)
}
Menonaktifkan pengalihan
Jika Anda menggunakan URL Fetch, layanan URL-Fetch dasar akan mengikuti hingga lima pengalihan secara default. Pengalihan ini dapat meneruskan informasi sensitif, seperti header otorisasi, ke tujuan yang dialihkan. Jika aplikasi Anda tidak memerlukan pengalihan HTTP, sebaiknya nonaktifkan pengalihan.
Untuk menginstruksikan layanan URL-fetch agar tidak mengikuti pengalihan, tetapkan
CheckRedirect kolom http.Client
yang ditampilkan dari
urlfetch paket
untuk menampilkan http.ErrUseLastResponse.
Hal ini berlaku untuk appengine/urlfetch dan appengine/v2/urlfetch. Contoh:
client := urlfetch.Client(ctx)
client.CheckRedirect = func(*http.Request, []*http.Request) error {
return http.ErrUseLastResponse
}
Mengirimkan permintaan HTTPS
Secara default, layanan URL-Fetch yang mendasarinya memvalidasi sertifikat host yang dihubungi, dan menolak permintaan jika sertifikat tidak cocok. Anda tidak perlu mengamankan permintaan secara eksplisit.
Menonaktifkan validasi sertifikat host
Untuk menonaktifkan validasi sertifikat host otomatis, Anda dapat membuat
Transport secara manual dan menetapkan
AllowInvalidServerCertificate ke true.
Mengirimkan permintaan ke aplikasi App Engine lain
Saat menggunakan URL Fetch untuk mengirimkan permintaan ke aplikasi App Engine lain, aplikasi Anda dapat menegaskan identitasnya dengan menambahkan header X-Appengine-Inbound-Appid ke permintaan tersebut.
Jika Anda menginstruksikan layanan URL-Fetch untuk tidak mengikuti pengalihan, App Engine akan otomatis menambahkan header ini ke permintaan. Lihat Menonaktifkan pengalihan untuk mendapatkan panduan tentang cara menonaktifkan pengalihan.
Langkah berikutnya
Pelajari layanan URL-Fetch, seperti header yang dikirim dalam permintaan URL Fetch di Permintaan Keluar.