tigtools

ตัวแปลง cURL เป็นโค้ด

วางคำสั่ง curl เช่น คำสั่งที่คัดลอกจากเครื่องมือนักพัฒนาของเบราว์เซอร์หรือเอกสาร API แล้วรับโค้ดที่เทียบเท่าในภาษาที่คุณเลือก

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

ภาษา

วิธีใช้งาน

  1. คัดลอกคำขอเป็น curl เช่น จากเครื่องมือนักพัฒนาของเบราว์เซอร์ (แท็บ Network คลิกขวา แล้วเลือก Copy as cURL) หรือจากเอกสาร API
  2. วางลงในช่อง การต่อบรรทัดด้วย \ ใช้ได้
  3. เลือก JavaScript fetch, Node.js axios, Python requests หรือ PHP cURL
  4. อ่านหมายเหตุใต้โค้ด จากนั้นคัดลอกหรือดาวน์โหลดผลลัพธ์

วิธีการทำงาน

ตัวแปลงจะแยกคำสั่งออกเป็นคำก่อนเหมือนกับเชลล์ POSIX โดยรองรับเครื่องหมายคำพูดเดี่ยว เครื่องหมายคำพูดคู่ที่ escape ด้วย backslash ข้อความ $'…' และการขึ้นบรรทัดต่อเนื่องด้วย backslash ตัวแปรเชลล์ เช่น $TOKEN จะไม่ถูกขยาย แต่จะคงไว้เป็นข้อความ

ตัวเลือก curl ที่รองรับ: URL (หรือ --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form และ --form-string (ฟิลด์และการอัปโหลด @file พร้อม ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (สตริงคุกกี้), -L/--location และ --compressed ตัวเลือกแบบสั้นรวมกันได้ เช่น -sSL และระบุค่าแบบติดกันได้ เช่น -XPOST

กฎเป็นไปตาม curl: ค่า -d หลายตัวจะถูกเชื่อมด้วย &; ข้อมูลทำให้คำขอเป็น POST เว้นแต่ -X หรือ -G จะระบุเป็นอย่างอื่น; -G จะผนวกข้อมูลเข้ากับ URL เป็น query string; --json ตั้งค่าส่วนหัว Content-Type และ Accept เป็น application/json เมื่อเนื้อหาคำขอเป็น JSON และ Content-Type ระบุเช่นนั้น โค้ดจะส่งเป็นออบเจกต์จริง (json= ใน Python, อาร์เรย์ด้วย json_encode ใน PHP) แทนสตริงที่ถูก escape สำหรับฟอร์ม multipart ส่วนหัว Content-Type จะปล่อยให้ไลบรารีจัดการ เพื่อให้ boundary ถูกต้อง

-k/--insecure ถูกละเว้นโดยตั้งใจและมีหมายเหตุอธิบาย ตัวเลือกที่เปลี่ยนเฉพาะผลลัพธ์ของ curl เองเท่านั้น (-s, -S, -v, -i, -o, --fail และที่คล้ายกัน) จะถูกละเว้นพร้อมหมายเหตุ ตัวเลือกอื่นใดจะแสดงข้อผิดพลาดชัดเจนพร้อมระบุชื่อ แทนที่จะสร้างโค้ดที่ทำงานต่างออกไปอย่างเงียบ ๆ ยังมีข้อแตกต่างหนึ่งประการ: curl จะติดตาม redirect เฉพาะเมื่อใช้ -L ในขณะที่ fetch, axios และ requests ติดตามโดยค่าเริ่มต้น ส่วนโค้ด PHP จะติดตามเฉพาะเมื่อระบุ -L เท่านั้น

เครื่องมือนี้เขียนเฉพาะโค้ดเท่านั้น โดยไม่ส่งคำขอใด ๆ ดังนั้น token และรหัสผ่านในคำสั่งจะไม่ถูกนำไปใช้ที่ใด

ตัวอย่าง

จำลองคำขอจากเบราว์เซอร์ใน Python

คัดลอกคำขอ API ที่ล้มเหลวจากแท็บ Network ใน Chrome เป็น cURL แล้วแปลงเป็น Python requests เฮดเดอร์ คุกกี้ และบอดี้ JSON จะถูกนำมาด้วย คุณจึงจำลองบั๊กในสคริปต์ได้

ใช้เอกสาร API ใน Node.js

เอกสารอ้างอิง API แสดง “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur” เวอร์ชัน axios ใช้ auth: { username: "key", password: "" } และบอดี้แบบ form-encoded

อัปโหลดไฟล์ใน PHP

“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” กลายเป็น CURLOPT_POSTFIELDS พร้อม new CURLFile('invoice.pdf', 'application/pdf') และฟิลด์ note

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

เครื่องมือนี้ส่งคำขอของฉันหรือไม่

ไม่ เครื่องมือแค่วิเคราะห์ข้อความคำสั่งและสร้างโค้ดเท่านั้น ไม่มีการส่งคำขอใด ๆ ดังนั้น API key หรือคุกกี้ในคำสั่งจะไม่ถูกนำไปใช้หรือจัดเก็บ

ทำไม -k/--insecure จึงไม่ถูกแปลง

การปิดการตรวจสอบใบรับรองทำให้การเชื่อมต่อเสี่ยงต่อการถูกดักจับ โค้ดที่สร้างขึ้นยังคงเปิดการตรวจสอบใบรับรองไว้ หากใบรับรองของเซิร์ฟเวอร์ไม่ได้รับความเชื่อถือ ให้แก้ไขใบรับรองหรือ trust store แทน

ทำไมฉันจึงเห็นข้อความ “option is not supported”

ตัวแปลงจะแปลงเฉพาะออปชันที่สามารถสร้างความหมายได้ตรงกันเท่านั้น พร็อกซี ใบรับรองไคลเอ็นต์ cookie jar และออปชันคล้ายกันจะถูกปฏิเสธ เพื่อไม่ให้คุณได้โค้ดที่ทำงานต่างจาก curl

ใช้กับคำสั่ง Windows cmd ได้หรือไม่

คำสั่งที่คัดลอกเป็น “cURL (bash)” ทำงานได้ดีที่สุด Windows cmd ใช้ ^ สำหรับขึ้นบรรทัดใหม่และมีรูปแบบการใส่เครื่องหมายคำพูดต่างกัน เครื่องหมาย ^ ท้ายบรรทัดยอมรับได้ แต่ escape อื่น ๆ ของ cmd อาจไม่รองรับ

ความเป็นส่วนตัว

คำสั่งถูกประมวลผลในเบราว์เซอร์ของคุณเท่านั้น และไม่มีการส่งคำขอใด ๆ ไม่มีการอัปโหลด จัดเก็บ หรือรวมในข้อมูลวิเคราะห์