ID region
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 idiomatis bahasa untuk mengeluarkan permintaan HTTP(S) sebelum menggunakan layanan URL Fetch. Kasus penggunaan utama untuk menggunakan URL Fetch adalah saat Anda ingin mengirim 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 dalam permintaan URL Fetch, lihat Permintaan keluar.
Secara default, aplikasi yang berjalan di runtime Java menggunakan class Java standar untuk permintaan HTTP(S), sepertijava.net.HttpURLConnection. Anda mengirimkan permintaan
seperti yang Anda lakukan untuk aplikasi Java lainnya.
Menggunakan class jaringan runtime standar
Jika menggunakan class jaringan Java standar, aplikasi Anda akan memiliki akses ke fitur berikut:
- Batas 32 MB pada data permintaan tidak berlaku.
- Dukungan untuk HTTP 2.0.
- Mendukung semua API berbasis Google Cloudyang dapat diakses dari Library Klien Cloud untuk Java.
Menggunakan URL-fetch
Jika Anda harus menggunakan URL Fetch di aplikasi Java, tambahkan baris berikut ke file appengine-web.xml:
<url-stream-handler>urlfetch</url-stream-handler>
Contoh:
<xml version="1.0" encoding="utf-8">
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<!-- ... -->
<url-stream-handler>urlfetch</url-stream-handler>
<!-- ... -->
</appengine-web-app>
Mengirim permintaan HTTP
Untuk menggunakan layanan URL Fetch guna menerbitkan permintaan HTTP(S) keluar, gunakan
java.net.URLConnection.
Cuplikan berikut menunjukkan cara melakukan permintaan GET HTTP dasar.
Aplikasi akan membuat objek URL baru, lalu memanggil metode openStream()
objek untuk mengambil konten di URL tersebut:
Untuk permintaan lanjutan lainnya, gunakan java.net.HttpURLConnection sebagai berikut:
- Buat objek
URLbaru. - Buat objek
URLConnectionbaru dengan memanggil metodeopenConnection()objekURLAnda. - Buat objek
HttpURLConnectionbaru dengan mentransmisikan objekURLConnectionke jenis objekHttpURLConnection. - Tetapkan metode permintaan objek
HttpURLConnection. - Buat streaming output untuk permintaan.
- Tulis payload permintaan ke aliran data.
- Tutup aliran data.
Cuplikan berikut menunjukkan cara menggunakan HttpURLConnection untuk
melakukan permintaan lanjutan, dan mengirimkan data dari formulir web menggunakan
permintaan PUT:
Menyetel waktu tunggu permintaan
Jika Anda menggunakan URL Fetch, sesuaikan batas waktu default untuk
permintaan menggunakan setelan appengine.api.urlfetch.defaultDeadline
pada file appengine-web.xml.
Menetapkan header
Jika menggunakan URL-fetch, Anda dapat menetapkan header HTTP pada permintaan keluar,
dengan memanggil metode setRequestProperty() objek HttpURLConnection. Cuplikan
berikut menetapkan header X-MyApp-Version ke 2.7.3:
conn.setRequestProperty("X-MyApp-Version", "2.7.3");
Menonaktifkan pengalihan
Secara default,HttpURLConnection mengikuti pengalihan HTTP.
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 menonaktifkan perilaku ini, teruskan nilai false ke metode setInstanceFollowRedirects()
objek HttpURLConnection Anda:
conn.setInstanceFollowRedirects(false);
Jika aplikasi Anda menggunakan paket urlfetch yang mendasarinya secara langsung,
bukan java.net, aplikasi harus menentukan
doNotFollowRedirects.
Mengirim permintaan HTTPS
Secara default, layanan Fetch URL 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 di URL Fetch, kirim permintaan HTTPS menggunakan class FetchOptions
dalam paket urlfetch dan panggil metode doNotValidateCertificate().
Mengirim permintaan asinkron
Permintaan HTTP(S) sinkron secara default. Untuk memberikan permintaan
asinkron, aplikasi Anda harus
menggunakan metode fetchAsync()
URLFetchService. Metode ini akan menampilkan
java.util.concurrent.Future<HTTPResponse>.
Mengirim permintaan ke aplikasi App Engine lain
Saat menggunakan URL Fetch untuk menerbitkan 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.