Tukar curl ke C
curl2code menukar arahan curl kepada kod C menggunakan libcurl. Penukaran ini berjalan dalam pelayar anda melalui WebAssembly untuk privasi lengkap. Untuk Rust, lihat penukar curl ke Rust kami. Untuk Go, lihat curl ke Go. Di bawah adalah contoh C praktikal dengan pengurusan memori yang betul.
Cara menyalin curl daripada pelayar anda
- 1
Buka DevTools
Tekan F12 atau Ctrl+Shift+I untuk membuka alat pembangun pelayar anda.
- 2
Pergi ke tab Network
Klik tab Network dan lakukan tindakan yang mencetuskan permintaan HTTP.
- 3
Salin sebagai cURL
Klik kanan pada permintaan → Copy → Copy as cURL. Kemudian tampalkannya di atas.
Soalan Lazim
Apakah itu libcurl?
libcurl ialah pustaka C di sebalik alat baris arahan curl. Ia adalah pustaka klien HTTP yang paling mudah alih (portable) dan digunakan secara meluas, menyokong lebih 25 protokol. Digunakan oleh beribu-ribu aplikasi dan sistem terbenam. Tambah dengan pengurus pakej sistem anda atau pautkan secara statik. curl2code menjana kod C libcurl menggunakan antara muka easy.
libcurl antara muka easy vs multi — yang mana patut digunakan?
Antara muka easy (curl_easy_*) adalah untuk pemindahan segerak tunggal — mudah dan terus. Antara muka multi (curl_multi_*) membolehkan pemindahan serentak tanpa sekatan dalam satu utas (thread). Gunakan easy untuk skrip dan alat mudah, multi untuk aplikasi berprestasi tinggi. Untuk bahasa keluarga C tahap lebih tinggi, lihat curl ke Rust.
Bagaimana cara mengendalikan pengesahan dengan libcurl?
Untuk Bearer: tetapkan pengepala tersuai dengan curl_slist_append(headers, "Authorization: Bearer token"). Untuk pengesahan Basic: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl mengekod kelayakan pengesahan Basic secara automatik. curl2code menukar bendera -u dan pengepala kepada panggilan API C yang betul.
Bagaimana cara menghantar data borang multipart dengan libcurl?
Gunakan API MIME (libcurl 7.56+): curl_mime_init() untuk mencipta struktur mime, curl_mime_addpart() untuk setiap medan, curl_mime_name() dan curl_mime_filedata() untuk muat naik fail. Tetapkan dengan CURLOPT_MIMEPOST. Bebaskan dengan curl_mime_free().
Bagaimana cara mengendalikan ralat dengan libcurl?
Setiap fungsi curl_easy_* mengembalikan CURLcode — periksa berbanding CURLE_OK. Gunakan curl_easy_strerror(code) untuk mesej yang boleh dibaca manusia. Tetapkan CURLOPT_ERRORBUFFER untuk rentetan ralat terperinci. Dapatkan status HTTP dengan curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).
Bagaimana cara mengurus memori dengan libcurl?
Sentiasa panggil curl_easy_cleanup() apabila selesai dengan pemegang (handle). Bebaskan senarai pengepala dengan curl_slist_free_all(). Bebaskan struktur MIME dengan curl_mime_free(). Untuk panggilan balik tulis (write callbacks), urus peruntukan penimbal anda sendiri. Panggil curl_global_cleanup() sekali semasa keluar program. Kegagalan membebaskan sumber menyebabkan kebocoran memori.
Bagaimana cara menetapkan had masa tamat dengan libcurl?
Tetapkan CURLOPT_CONNECTTIMEOUT untuk had masa sambungan dan CURLOPT_TIMEOUT untuk jumlah masa pemindahan (kedua-duanya dalam saat). Untuk ketepatan milisaat, gunakan CURLOPT_CONNECTTIMEOUT_MS dan CURLOPT_TIMEOUT_MS. Ini adalah pilihan yang sama yang digunakan CLI curl dengan --connect-timeout dan --max-time.
Bagaimana cara mengkonfigurasi proksi dengan libcurl?
Tetapkan CURLOPT_PROXY ke URL proksi: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Untuk SOCKS5: tetapkan CURLOPT_PROXYTYPE ke CURLPROXY_SOCKS5. Untuk pengesahan proksi: CURLOPT_PROXYUSERPWD. libcurl juga mematuhi pembolehubah persekitaran http_proxy.
Bagaimana cara menghantar permintaan POST dengan badan JSON dalam C?
Tukar perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ke C menggunakan curl2code. Kod yang dihasilkan menggunakan curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code mengesan bendera -d/--data secara automatik dengan kandungan JSON dan menetapkan pengepala Content-Type yang sesuai dalam kod libcurl.
Bagaimana cara menambah kebenaran token Bearer dalam C?
Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan ia akan menghasilkan kod libcurl dengan pengepala auth: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer 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 C?
curl2code menukar curl -H "Content-Type: application/json" URL kepada kod libcurl dengan pengepala yang betul: curl_slist_append(headers, "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 libcurl yang betul.