Tukar curl ke Go

Tukar arahan curl kepada kod Go menggunakan pakej net/http standard. curl2code berjalan sepenuhnya dalam pelayar anda melalui WebAssembly — data anda kekal peribadi. Jika anda lebih suka bahasa tahap lebih tinggi, cuba penukar curl ke Python kami. Untuk pengaturcaraan sistem, lihat curl ke Rust. Di bawah adalah contoh Go yang sedia untuk digunakan.

Cara menyalin curl daripada pelayar anda

  1. 1

    Buka DevTools

    Tekan F12 atau Ctrl+Shift+I untuk membuka alat pembangun pelayar anda.

  2. 2

    Pergi ke tab Network

    Klik tab Network dan lakukan tindakan yang mencetuskan permintaan HTTP.

  3. 3

    Salin sebagai cURL

    Klik kanan pada permintaan → CopyCopy as cURL. Kemudian tampalkannya di atas.

Soalan Lazim

Apakah itu Go net/http?

net/http Go ialah klien dan pelayan HTTP gred pengeluaran yang disertakan dalam pustaka standard. Ia tidak memerlukan kebergantungan luaran, menyokong HTTP/2 secara lalai, dan menyediakan penyatuan sambungan, had masa tamat, dan konfigurasi TLS secara sedia ada. Ia adalah satu-satunya pustaka yang digunakan curl2code untuk Go — tiada pakej pihak ketiga diperlukan.

net/http vs klien HTTP Go pihak ketiga — yang mana patut digunakan?

net/http Go cukup berkuasa untuk kebanyakan kes penggunaan — tidak seperti banyak bahasa lain, pustaka standardnya sedia untuk pengeluaran. Pilihan pihak ketiga seperti resty menambah kemudahan (cubaan semula automatik, rantaian) tetapi menambah kebergantungan. Untuk pendekatan lengkap sedia ada (batteries-included) yang serupa, lihat penukar curl ke Rust (reqwest) atau curl ke Python.

Bagaimana cara mengendalikan pengesahan dalam Go?

Tetapkan pengepala Authorization dengan req.Header.Set("Authorization", "Bearer "+token). Untuk pengesahan Basic, gunakan req.SetBasicAuth(user, pass) yang menetapkan pengepala secara automatik. curl2code mengesan -u dan -H 'Authorization: ...' dan menghasilkan kod Go yang betul.

Bagaimana cara menghantar data borang multipart dalam Go?

Gunakan pakej mime/multipart: cipta penulis dengan multipart.NewWriter(body), tambah medan dengan CreateFormField, dan fail dengan CreateFormFile. Tetapkan Content-Type kepada writer.FormDataContentType(). curl2code mengendalikan semua penukaran bendera -F.

Bagaimana cara mengendalikan ralat HTTP dalam Go?

Go menggunakan pemulangan ralat eksplisit: sentiasa semak if err != nil selepas http.Do(req). Kemudian semak resp.StatusCode untuk ralat tahap HTTP. Sentiasa defer resp.Body.Close() untuk mengelakkan kebocoran sumber. Pengendalian ralat eksplisit ini adalah corak teras Go — tiada pengecualian, tiada try/catch.

Bagaimana cara membuat permintaan HTTP serentak dalam Go?

Gunakan goroutine dengan sync.WaitGroup atau saluran (channels). Lancarkan setiap permintaan dalam goroutine dengan go func() { ... }(). Untuk keserentakan terhad, gunakan saluran semafor. Goroutine Go adalah ringan — anda boleh mengendalikan beribu-ribu permintaan serentak dengan mudah. Untuk corak keserentakan yang serupa, lihat curl ke Rust.

Bagaimana cara menetapkan had masa tamat dalam klien HTTP Go?

Tetapkan client.Timeout untuk tarikh akhir permintaan keseluruhan. Untuk kawalan yang lebih terperinci, gunakan context.WithTimeout atau context.WithDeadline dan hantar konteks kepada http.NewRequestWithContext. Bendera --connect-timeout pada curl dipetakan kepada had masa tamat Transport.DialContext, manakala --max-time dipetakan kepada client.Timeout.

Bagaimana cara mengkonfigurasi proksi dalam Go?

Tetapkan Transport.Proxy kepada http.ProxyURL(proxyUrl) pada http.Transport tersuai. Go juga menghormati pembolehubah persekitaran HTTP_PROXY dan HTTPS_PROXY secara lalai melalui http.ProxyFromEnvironment. curl2code menukar bendera -x dan --proxy kepada konfigurasi proksi Go yang sesuai.

Bagaimana cara menghantar permintaan POST dengan badan JSON dalam Go?

Tukar perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ke Go menggunakan curl2code. Kod yang dihasilkan menggunakan http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code mengesan bendera -d/--data secara automatik dengan kandungan JSON dan menetapkan pengepala Content-Type yang sesuai dalam kod net/http.

Bagaimana cara menambah kebenaran token Bearer dalam Go?

Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan ia akan menghasilkan kod net/http dengan pengepala auth: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code mengesan token Bearer daripada kedua-dua bendera -H "Authorization: Bearer ..." dan --oauth2-bearer. Untuk Basic auth, gunakan -u user:pass.

Bagaimana cara menetapkan pengepala Content-Type dalam Go?

curl2code menukar curl -H "Content-Type: application/json" URL kepada kod net/http dengan pengepala yang betul: req.Header.Set("Content-Type", "application/json"). Untuk data -d, curl secara lalai menggunakan application/x-www-form-urlencoded; untuk muat naik borang -F, ia menggunakan multipart/form-data. curl2code memetakan setiap satu ke API net/http yang betul.

Pautan Berguna

Panduan curl

Tukar curl ke Bahasa Lain