แปลง curl เป็น C

curl2code แปลงคำสั่ง curl เป็นโค้ด C โดยใช้ libcurl การแปลงทำงานในเบราว์เซอร์ของคุณผ่าน WebAssembly เพื่อความเป็นส่วนตัวที่สมบูรณ์ สำหรับ Rust ตรวจสอบ ตัวแปลง curl เป็น Rust ของเรา สำหรับ Go ดูที่ curl เป็น Go ด้านล่างนี้คือตัวอย่าง C ที่ใช้งานได้จริงพร้อมการจัดการหน่วยความจำที่เหมาะสม

วิธีคัดลอก curl จากเบราว์เซอร์ของคุณ

  1. 1

    เปิด DevTools

    กด F12 หรือ Ctrl+Shift+I เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์

  2. 2

    ไปที่แท็บ Network

    คลิกแท็บ Network และดำเนินการที่ทริกเกอร์คำขอ HTTP

  3. 3

    คัดลอกเป็น cURL

    คลิกขวาที่คำขอ → CopyCopy as cURL จากนั้นนำมาวางด้านบน

คำถามที่พบบ่อย (FAQ)

libcurl คืออะไร?

libcurl เป็นไลบรารีภาษา C ที่อยู่เบื้องหลังคำสั่ง curl ใน command-line เป็นไลบรารี HTTP client ที่พอร์ตได้ง่ายและถูกใช้งานแพร่หลายที่สุดในโลก รองรับโปรโตคอลมากกว่า 25 ชนิด ถูกใช้ในแอปพลิเคชันและระบบฝังตัว (embedded systems) นับพันรายการ เพิ่มได้ผ่าน package manager ของระบบหรือลิงก์แบบ static โดย curl2code จะสร้างโค้ด libcurl C โดยใช้อินเทอร์เฟซแบบ easy

libcurl easy vs multi interface — ควรใช้อันไหน?

easy interface (curl_easy_*) สำหรับการรับส่งข้อมูลแบบ synchronous ครั้งเดียว — เรียบง่ายและตรงไปตรงมา multi interface (curl_multi_*) ช่วยให้รับส่งข้อมูลพร้อมกันแบบ non-blocking ใน thread เดียว ใช้ easy สำหรับสคริปต์และเครื่องมือพื้นฐาน และใช้ multi สำหรับแอปพลิเคชันที่ต้องการประสิทธิภาพสูง สำหรับภาษาในตระกูล C ที่ระดับสูงกว่า ดูได้ที่ curl เป็น Rust

จะจัดการการยืนยันตัวตนด้วย libcurl ได้อย่างไร?

สำหรับ Bearer: ตั้งค่า custom header ด้วย curl_slist_append(headers, "Authorization: Bearer token") สำหรับ Basic auth: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass") โดย libcurl จะเข้ารหัสข้อมูลยืนยันตัวตน Basic auth ให้โดยอัตโนมัติ curl2code จะแปลงแฟล็ก -u และ header เป็นการเรียก C API ที่ถูกต้อง

จะส่งข้อมูลแบบ multipart form data ด้วย libcurl ได้อย่างไร?

ใช้ MIME API (libcurl 7.56+): curl_mime_init() เพื่อสร้างโครงสร้าง mime, curl_mime_addpart() สำหรับแต่ละฟิลด์, curl_mime_name() และ curl_mime_filedata() สำหรับการอัปโหลดไฟล์ ตั้งค่าด้วย CURLOPT_MIMEPOST และคืนหน่วยความจำด้วย curl_mime_free()

จะจัดการข้อผิดพลาดด้วย libcurl ได้อย่างไร?

ทุกฟังก์ชัน curl_easy_* จะคืนค่า CURLcode — ให้ตรวจสอบเทียบกับ CURLE_OK ใช้ curl_easy_strerror(code) สำหรับข้อความที่มนุษย์อ่านออก ตั้งค่า CURLOPT_ERRORBUFFER สำหรับข้อความข้อผิดพลาดโดยละเอียด และรับสถานะ HTTP ด้วย curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code)

จะจัดการหน่วยความจำด้วย libcurl ได้อย่างไร?

เรียก curl_easy_cleanup() เสมอเมื่อใช้งาน handle เสร็จสิ้น คืนหน่วยความจำรายการ header ด้วย curl_slist_free_all() คืนหน่วยความจำโครงสร้าง MIME ด้วย curl_mime_free() สำหรับ write callbacks ให้จัดการการจองหน่วยความจำ buffer ของคุณเอง และเรียก curl_global_cleanup() หนึ่งครั้งเมื่อจบโปรแกรม การไม่คืนทรัพยากรจะทำให้เกิดหน่วยความจำรั่วไหล (memory leaks)

จะตั้งค่า timeout ด้วย libcurl ได้อย่างไร?

ตั้งค่า CURLOPT_CONNECTTIMEOUT สำหรับ timeout การเชื่อมต่อ และ CURLOPT_TIMEOUT สำหรับเวลาการรับส่งข้อมูลทั้งหมด (ทั้งคู่เป็นวินาที) สำหรับความละเอียดระดับมิลลิวินาที ให้ใช้ CURLOPT_CONNECTTIMEOUT_MS และ CURLOPT_TIMEOUT_MS ซึ่งเป็นตัวเลือกเดียวกับที่ curl CLI ใช้ผ่าน --connect-timeout และ --max-time

จะตั้งค่า proxy ด้วย libcurl ได้อย่างไร?

ตั้งค่า CURLOPT_PROXY เป็น URL ของ proxy: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080") สำหรับ SOCKS5: ตั้งค่า CURLOPT_PROXYTYPE เป็น CURLPROXY_SOCKS5 สำหรับ proxy auth: CURLOPT_PROXYUSERPWD นอกจากนี้ libcurl ยังเคารพตัวแปรสภาพแวดล้อม http_proxy ด้วย

วิธีส่งคำขอ POST พร้อม JSON body ใน C?

แปลงคำสั่ง curl POST เช่น curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL เป็น C โดยใช้ curl2code โค้ดที่สร้างขึ้นจะใช้ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string) โดย curl2code จะตรวจจับแฟล็ก -d/--data ที่มีเนื้อหา JSON โดยอัตโนมัติ และตั้งค่าส่วนหัว Content-Type ที่เหมาะสมในโค้ด libcurl

วิธีเพิ่มการยืนยันตัวตนด้วย Bearer token ใน C?

ส่ง curl -H "Authorization: Bearer YOUR_TOKEN" URL ไปยัง curl2code และเครื่องมือจะสร้างโค้ด libcurl พร้อมส่วนหัวการยืนยันตัวตน: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN") โดย curl2code จะตรวจจับ Bearer tokens จากทั้งแฟล็ก -H "Authorization: Bearer ..." และ --oauth2-bearer สำหรับ Basic auth ให้ใช้ -u user:pass

วิธีตั้งค่าส่วนหัว Content-Type ใน C?

curl2code จะแปลง curl -H "Content-Type: application/json" URL เป็นโค้ด libcurl พร้อมส่วนหัวที่ถูกต้อง: curl_slist_append(headers, "Content-Type: application/json") สำหรับข้อมูล -d นั้น curl จะกำหนดค่าเริ่มต้นเป็น application/x-www-form-urlencoded ส่วนการอัปโหลดฟอร์ม -F จะใช้ multipart/form-data โดย curl2code จะจับคู่แต่ละรายการเข้ากับ libcurl API ที่ถูกต้อง

ลิงก์ที่มีประโยชน์

คู่มือ curl

แปลง curl เป็นภาษาอื่น