เครื่องมือนี้ทำอะไร
เครื่องมือแปลง curl เป็นโค้ดจะเปลี่ยนคำสั่ง curl ให้เป็นโค้ดที่พร้อมรันสำหรับเจ็ดเป้าหมาย ได้แก่ JavaScript fetch, Node.js axios, Python requests, Go net/http, PHP cURL, Java HttpClient และ C# HttpClient เอกสาร API, Postman และ DevTools ของเบราว์เซอร์มักให้คำขอมาในรูปคำสั่ง curl เครื่องมือนี้ช่วยให้ไม่ต้องเขียนเมธอด URL เฮดเดอร์ บอดี้ และการยืนยันตัวตนใหม่ด้วยมือ
ตัวแยกวิเคราะห์เขียนขึ้นสำหรับบรรทัดคำสั่งของ curl โดยเฉพาะ อ่านเครื่องหมายคำพูดแบบเดียวกับ bash เข้าใจตัวเลือกสั้นที่รวมกันอย่าง -sSL และค่าที่เขียนติดกันอย่าง -XPOST และคงลำดับเฮดเดอร์ไว้ตามเดิม
วิธีใช้
- วางคำสั่ง curl ลงในช่องอินพุต หรือกด ตัวอย่าง เพื่อทดลอง
- เลือก ภาษา ที่ต้องการ
- คัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์ซอร์สโค้ด
บอดี้ที่ส่งด้วย -d จะกลายเป็นบอดี้แบบเข้ารหัสฟอร์ม --json (หรือ Content-Type แบบ JSON) จะกลายเป็นบอดี้ JSON ที่จัดรูปแบบเมื่อภาษารองรับ และฟิลด์ -F จะกลายเป็นฟอร์ม multipart พร้อมการอัปโหลดไฟล์ -u user:password จะถูกแปลงเป็นตัวเลือก basic auth ของแต่ละภาษา ส่วน -k, -L, -m และ -x ตรงกับการตรวจสอบ TLS การเปลี่ยนเส้นทาง การหมดเวลา และพร็อกซี
ตัวอย่าง
คำสั่งนี้ส่ง JSON พร้อม bearer token:
curl https://api.example.com/v1/users \
-H 'Authorization: Bearer TOKEN' \
--json '{"name":"Ada"}'
ใน Python จะได้การเรียก requests.post() ที่มีดิกชันนารี headers และ json=json_data ส่วนใน Go จะได้ http.NewRequest ที่ตั้งเฮดเดอร์ทีละตัวและส่งบอดี้ผ่าน string reader
เคล็ดลับ
- หากเกิดข้อผิดพลาด ข้อความจะบอกปัญหาและเคอร์เซอร์จะกระโดดไปยังจุดที่ผิด เช่น ตัวเลือกที่ไม่รู้จักหรือเครื่องหมายคำพูดที่ไม่ได้ปิด
- ไปป์และการเปลี่ยนทิศทางหลังคำสั่ง (
| jq .,> out.json) จะถูกละเว้น - โค้ดที่สร้างจะอ่านไฟล์ที่อ้างถึงด้วย
@fileตอนรัน ดังนั้นให้พาธถูกต้องเมื่อเทียบกับตำแหน่งที่โปรแกรมทำงาน - ตรวจสอบข้อมูลลับก่อนแชร์ลิงก์ เพราะปุ่มแชร์จะใส่คำสั่งไว้ในส่วน # ของลิงก์
คำถามที่พบบ่อย
› คำสั่ง curl ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่
ไม่ คำสั่งจะถูกวิเคราะห์และแปลงในเบราว์เซอร์ทั้งหมด ดังนั้นโทเค็น คุกกี้ และรหัสผ่านในคำสั่งจะไม่ออกจากอุปกรณ์ของคุณ
› รองรับตัวเลือก curl อะไรบ้าง
ตัวเลือกที่กำหนดเนื้อหาของคำขอ ได้แก่ -X, -H, -d, --data-raw, --data-binary, --data-urlencode, --json, -F, -u, -b, -A, -e, -G, -I, -L, -k, -m, -x, --compressed และ --url ส่วนตัวเลือกที่มีผลกับเอาต์พุตของ curl เองเท่านั้น เช่น -s, -v, -o หรือ -w จะรับไว้แต่ไม่นำมาใช้
› วางคำสั่งที่คัดลอกจาก DevTools ของเบราว์เซอร์ได้ไหม
ได้ ใช้ คัดลอกเป็น cURL (bash) ในแผง Network เครื่องมือเข้าใจการต่อบรรทัดด้วย \, ^ (Windows cmd) และ ` (PowerShell) รวมถึงเครื่องหมายคำพูดเดี่ยว คู่ และ $'…'
› ตัวเลือกที่โค้ดทำซ้ำไม่ได้จะเป็นอย่างไร
โค้ดที่สร้างจะขึ้นต้นด้วยคอมเมนต์ Note เช่น เมื่อ fetch ไม่สามารถแสดง -k ได้ หรือเมื่อ curl จะอ่านไฟล์ที่โค้ดไม่ได้เปิด ตัวเลือกที่ไม่รู้จักจะแจ้งเป็นข้อผิดพลาดที่ชี้ไปยังตัวเลือกนั้นพอดี