Konversi curl ke Go
Konversi perintah curl ke kode Go menggunakan paket standar net/http. curl2code berjalan sepenuhnya di peramban Anda melalui WebAssembly — data Anda tetap pribadi. Jika Anda lebih suka bahasa tingkat tinggi, coba konverter curl ke Python kami. Untuk pemrograman sistem, lihat curl ke Rust. Di bawah ini adalah contoh Go yang siap digunakan.
Cara menyalin curl dari peramban Anda
- 1
Buka DevTools
Tekan F12 atau Ctrl+Shift+I untuk membuka alat pengembang peramban Anda.
- 2
Buka tab Network
Klik tab Network dan lakukan tindakan yang memicu permintaan HTTP.
- 3
Salin sebagai cURL
Klik kanan pada permintaan → Copy → Copy as cURL. Kemudian tempelkan di atas.
Pertanyaan yang Sering Diajukan
Apa itu Go net/http?
net/http Go adalah klien dan server HTTP kelas produksi yang disertakan dalam pustaka standar. Ia tidak memerlukan dependensi eksternal, mendukung HTTP/2 secara default, dan menyediakan pengumpulan koneksi, batas waktu, serta konfigurasi TLS secara langsung. Ini adalah satu-satunya pustaka yang digunakan curl2code untuk Go — tidak diperlukan paket pihak ketiga.
net/http vs klien HTTP Go pihak ketiga — mana yang harus digunakan?
net/http Go cukup kuat untuk sebagian besar kasus penggunaan — tidak seperti banyak bahasa lain, pustaka standarnya siap untuk produksi. Opsi pihak ketiga seperti resty menambah kenyamanan (percobaan ulang otomatis, chaining) tetapi menambah dependensi. Untuk pendekatan lengkap (batteries-included) yang serupa, lihat konverter curl ke Rust (reqwest) atau curl ke Python.
Bagaimana cara menangani autentikasi di Go?
Atur header Authorization dengan req.Header.Set("Authorization", "Bearer "+token). Untuk autentikasi Basic, gunakan req.SetBasicAuth(user, pass) yang mengatur header secara otomatis. curl2code mendeteksi -u dan -H 'Authorization: ...' dan menghasilkan kode Go yang benar.
Bagaimana cara mengirim data formulir multipart di Go?
Gunakan paket mime/multipart: buat writer dengan multipart.NewWriter(body), tambahkan bidang dengan CreateFormField, dan file dengan CreateFormFile. Atur Content-Type ke writer.FormDataContentType(). curl2code menangani semua konversi flag -F.
Bagaimana cara menangani kesalahan HTTP di Go?
Go menggunakan pengembalian kesalahan eksplisit: selalu periksa if err != nil setelah http.Do(req). Kemudian periksa resp.StatusCode untuk kesalahan tingkat HTTP. Selalu gunakan defer resp.Body.Close() untuk mencegah kebocoran sumber daya. Penanganan kesalahan eksplisit ini adalah pola inti Go — tidak ada pengecualian, tidak ada try/catch.
Bagaimana cara membuat permintaan HTTP konkuren di Go?
Gunakan goroutine dengan sync.WaitGroup atau channel. Jalankan setiap permintaan dalam goroutine dengan go func() { ... }(). Untuk konkurensi terbatas, gunakan channel semaphore. Goroutine Go sangat ringan — Anda dapat dengan mudah menangani ribuan permintaan konkuren. Untuk pola konkurensi serupa, lihat curl ke Rust.
Bagaimana cara mengatur batas waktu di klien HTTP Go?
Atur client.Timeout untuk tenggat waktu permintaan secara keseluruhan. Untuk kontrol yang lebih halus, gunakan context.WithTimeout atau context.WithDeadline dan berikan konteks tersebut ke http.NewRequestWithContext. Flag --connect-timeout pada curl dipetakan ke batas waktu Transport.DialContext, dan --max-time dipetakan ke client.Timeout.
Bagaimana cara mengonfigurasi proksi di Go?
Atur Transport.Proxy ke http.ProxyURL(proxyUrl) pada http.Transport khusus. Go juga menghormati variabel lingkungan HTTP_PROXY dan HTTPS_PROXY secara default melalui http.ProxyFromEnvironment. curl2code mengonversi flag -x dan --proxy ke konfigurasi proksi Go yang sesuai.
Bagaimana cara mengirim POST request dengan JSON body di Go?
Konversi perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ke Go menggunakan curl2code. Kode yang dihasilkan menggunakan http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code secara otomatis mendeteksi flag -d/--data dengan konten JSON dan mengatur header Content-Type yang sesuai dalam kode net/http.
Bagaimana cara menambahkan otorisasi Bearer token di Go?
Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan alat ini akan menghasilkan kode net/http dengan header auth: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code mendeteksi Bearer token dari flag -H "Authorization: Bearer ..." maupun --oauth2-bearer. Untuk Basic auth, gunakan -u user:pass.
Bagaimana cara mengatur header Content-Type di Go?
curl2code mengonversi curl -H "Content-Type: application/json" URL ke kode net/http dengan header yang tepat: req.Header.Set("Content-Type", "application/json"). Untuk data -d, curl secara default menggunakan application/x-www-form-urlencoded; untuk unggahan formulir -F, curl menggunakan multipart/form-data. curl2code memetakan masing-masing ke API net/http yang benar.