Membuat Permintaan HTTP
GET dan POST dengan http.NewRequest serta http.DefaultClient
Membuat Permintaan HTTP adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Cara singkat dengan http.Get
http.Get(url) adalah cara paling sederhana untuk membuat permintaan GET. Selalu tutup isi respons.
resp, err := http.Get("https://api.example.com/users")
if err != nil { return err }
defer resp.Body.Close()http.DefaultClient
http.Get menggunakan DefaultClient tingkat paket. Untuk produksi, buat klien khusus dengan batas waktu yang ditetapkan.
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Get(url)http.NewRequest untuk kendali penuh
Gunakan http.NewRequest untuk menetapkan metode, tajuk, dan isi:
req, err := http.NewRequestWithContext(ctx, "POST", url, body)
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)Isi permintaan
Teruskan isi permintaan melalui io.Reader. Untuk muatan JSON, gunakan bytes.NewBuffer(data) atau strings.NewReader.
data, _ := json.Marshal(payload)
req, _ := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(data))Pemeriksaan status respons
Selalu periksa kode status HTTP — 4xx/5xx secara bawaan tidak dikembalikan sebagai galat Go.
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("unexpected status: %d", resp.StatusCode)
}Mendekode respons JSON
Dekode isi respons dengan json.Decoder agar seluruh isinya tidak perlu dibaca ke memori terlebih dahulu:
var result APIResponse
json.NewDecoder(resp.Body).Decode(&result)Parameter kueri
Buat string kueri dengan url.Values dan lampirkan ke URL:
params := url.Values{}
params.Set("page", "1")
params.Set("limit", "20")
reqURL := baseURL + "?" + params.Encode()Client.Do dan transport khusus
Bungkus http.DefaultTransport untuk menambahkan logika percobaan ulang, TLS khusus, atau setelan proksi tanpa kehilangan perilaku bawaan.
Isi respons harus ditutup
Kegagalan menutup isi respons membocorkan koneksi TCP yang mendasarinya. Selalu gunakan defer resp.Body.Close(), bahkan untuk respons galat.
Mengikuti pengalihan
Klien bawaan mengikuti hingga 10 pengalihan. Tetapkan client.CheckRedirect untuk menyesuaikan atau menonaktifkan pengikutan pengalihan.
Menetapkan User-Agent
Tetapkan tajuk User-Agent yang deskriptif agar catatan peladen dapat mengidentifikasi klien Anda:
req.Header.Set("User-Agent", "myapp/1.0 (+https://myapp.com)")Pemeriksaan Singkat
Mengapa Anda harus selalu menutup isi respons HTTP?
Rangkuman: Membuat Permintaan HTTP
Poin penting:
- Selalu gunakan defer resp.Body.Close()
- Buat http.Client khusus dengan Timeout untuk produksi
- Gunakan http.NewRequestWithContext untuk konteks dan tajuk khusus
- Periksa resp.StatusCode — galat HTTP bukan galat Go
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membuat Permintaan HTTP” gratis?
Ya — teks lengkap “Membuat Permintaan HTTP” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membuat Permintaan HTTP”?
GET dan POST dengan http.NewRequest serta http.DefaultClient Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Membuat Permintaan HTTP” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membuat Permintaan HTTP
- Mengatur Batas Waktu dan Header
- Menguraikan Respons JSON
- Penanganan Error dan Logika Percobaan Ulang