curl → fetch / axios / Python / Go
ออกแบบเพื่อความเป็นส่วนตัว — ทำงานในเบราว์เซอร์ของคุณทั้งหมด
วางคำสั่ง curl — ที่มี -H, -d, -u และแฟล็ก method — แล้ว Toova จะคืนค่าเทียบเท่าเป็น JavaScript fetch, axios, Python requests หรือ Go net/http สะดวกเมื่อต้องการย้ายการเรียก API ข้ามภาษา
ตัวแปลงเข้าใจอะไรบ้าง
Toova แบ่งคำสั่งเหมือนเชลล์ POSIX อัญประกาศเดี่ยวและคู่ แบ็กสแลชสำหรับเชื่อมบรรทัด และเฮดเดอร์ที่ปรากฏซ้ำกันจะคงไว้ ระบบอ่าน -X เป็นเมธอด -H ที่ซ้ำกันเป็นเฮดเดอร์ -d / --data-raw / --data-urlencode เป็นบอดี และ -u เป็น basic auth ซึ่งจะกลายเป็นเฮดเดอร์ Authorization แบบเข้ารหัส Base64 ส่วนแฟล็กที่ไม่กระทบเช่น -L, -k, -s และ --compressed จะถูกข้ามอย่างเงียบ ๆ
แต่ละเป้าหมายให้รูปแบบใด
JavaScript fetch คง URL แบบ inline และสร้างอ็อบเจ็กต์ options ที่มี method, headers, body ขณะที่ axios ใช้คอนฟิกอ็อบเจ็กต์รวมเฮดเดอร์ ควีรี และบอดีไว้ด้วยกัน หาก --data เป็น JSON ที่ถูกต้อง ระบบจะยกให้เป็นฟิลด์ data ที่มีชนิดข้อมูล Python requests คง URL แบบ inline เช่นกัน เลือก json= สำหรับ JSON และ data= สำหรับชนิดอื่น Go net/http สร้าง http.NewRequest กำหนดเฮดเดอร์ทีละตัว และอ่านบอดีด้วย io.ReadAll เพื่อให้โค้ดยังอยู่ในแนวที่ Go คุ้นเคย
ทำไมข้อมูลถึงไม่ออกจากเบราว์เซอร์
คำสั่ง curl ใช้งานจริงมักมี bearer token, API key หรือคุกกี้เซสชัน เป็นข้อความที่คุณไม่อยากวางในฟอร์มสาธารณะ ตัวแปลงเป็นเพียงสคริปต์เล็ก ๆ ของ JavaScript ในแท็บนี้ ลองเปิด DevTools ขณะทดลอง คุณจะไม่เห็นคำขอใดถูกส่งออกตอนวางหรือสลับภาษา นั่นคือคำสัญญา
คำถามที่พบบ่อย
- รองรับแฟล็ก curl ใดบ้าง?
- รองรับ -X / --request, -H / --header, -d / --data / --data-raw, --data-urlencode, -u / --user รวมทั้งแฟล็กที่ไม่กระทบเช่น -L, -k, --compressed, -s/-v, --silent
- จัดการ body แบบ JSON ได้ไหม?
- ได้ ถ้า --data เป็น JSON ที่ถูกต้อง ผลลัพธ์ของ axios และ Python จะใช้รูปแบบอ็อบเจ็กต์ ทำให้ payload คงประเภทไว้ ส่วนรูปแบบอื่นจะคงเป็นสตริงเดิม
- แล้วการอัปโหลดแบบ multipart ล่ะ?
- -F เดี่ยวจะถูกตีความเป็นบอดีที่ไม่มีเฮดเดอร์และแปลงตามนั้น ความสามารถ multipart เต็มรูปแบบอยู่ในโรดแมป สำหรับตอนนี้ให้สลับเป็น FormData ด้วยตนเองใน fetch / axios
- มีการบันทึก token หรือ API key หรือไม่?
- ไม่ การแปลงเกิดในแท็บเบราว์เซอร์นี้ทั้งหมด Toova ไม่เห็นคำสั่ง curl ของคุณและไม่มีการเก็บข้อมูลของฟิลด์ที่พิมพ์
- ทำไม GET ถึงกลายเป็น POST?
- เป็นพฤติกรรมของ curl เมื่อมี --data วิธีการจะถูกปรับเป็น POST โดยอัตโนมัติ เว้นแต่คุณจะระบุ -X GET ตัวแปลงจึงทำเหมือนกันเพื่อรักษาความหมายของโค้ดที่สร้างขึ้น
- บันทึกผลลัพธ์ได้ไหม?
- ใช้ปุ่มคัดลอกได้เลย เราตั้งใจไม่เก็บข้อมูลข้ามการโหลดหน้า กรุณาเปิดแท็บค้างไว้ตอนทำงาน