ตัวแปลง cURL: แปลง cURL เป็น Fetch, Python, Axios และอื่น ๆ
วางคำสั่ง curl เช่น คำสั่งที่คัดลอกจาก DevTools ของเบราว์เซอร์ แล้วรับโค้ดพร้อมรันใน 8 ภาษา แปลงครบทั้ง header, JSON body, ฟอร์ม, การอัปโหลดไฟล์, auth และคุกกี้
ทำงานในเบราว์เซอร์ไม่ต้องสมัครไม่มีการอัปโหลด
วิธีใช้ ตัวแปลง cURL
- คัดลอกคำขอเป็น cURL: ใน DevTools ของ Chrome หรือ Firefox คลิกขวาที่คำขอในแท็บ Network → Copy → Copy as cURL
- วางลงในช่องข้อมูลขาเข้า รองรับคำสั่งหลายบรรทัดที่ใช้
\, การต่อบรรทัดด้วย^ของ Windows และสตริง$'…' - เลือกเป้าหมาย: JavaScript fetch, Axios, Node.js, Python requests, Python httpx, Go, PHP หรือ HTTPie
- อ่านคำเตือนใต้ผลลัพธ์ ซึ่งจะแสดงตัวเลือกที่ไม่มีสิ่งเทียบเท่าในภาษาเป้าหมาย
- คัดลอกโค้ดหรือดาวน์โหลดเป็นไฟล์
ทำไมต้องแปลงคำสั่ง curl เป็นโค้ด?
curl คือภาษากลางของ HTTP เอกสาร API แสดงตัวอย่างเป็น curl, DevTools ของเบราว์เซอร์ส่งออกคำขอเป็น curl และทีมซัพพอร์ตก็ส่งขั้นตอนการทำซ้ำเป็น curl เมื่อคุณต้องการใช้คำขอนั้นในแอปพลิเคชัน คุณต้องเขียนใหม่เอง: ย้าย -H ทุกตัวไปไว้ใน headers object เปลี่ยน -d เป็น body แปลง -u เป็น basic auth และต้องจำว่า -G ย้ายข้อมูลไปไว้ใน query string ตัวแปลงนี้ทำงานแปลเหล่านี้ให้คุณ และสร้างโค้ดที่วางลงในโปรเจกต์ได้ทันที
ตัวเลือก curl ที่รองรับ
| ตัวเลือก | แปลงเป็น |
|---|---|
-X, -I, -G | HTTP method (อนุมานเป็น POST เมื่อมี body) |
-H, -A, -e, -b | Header, User-Agent, Referer และคุกกี้ |
-d, --data-raw, --data-binary, --data-urlencode, --json | Request body: JSON object, ฟิลด์ฟอร์ม หรือข้อความดิบ |
-F | Multipart form data รวมถึงการอัปโหลด @file |
-u, --oauth2-bearer | Basic auth หรือ Bearer token |
-k, -L, -m, -x, --compressed | การตรวจสอบ TLS, redirect, timeout, proxy และการบีบอัด |
JSON body กลายเป็น object จริง
เมื่อคำขอส่ง JSON (มีเฮดเดอร์ Content-Type: application/json, ใช้ --json หรือ body ที่พาร์สเป็น JSON ได้) ตัวแปลงจะสร้างโครงสร้างข้อมูลแบบเนทีฟแทนสตริงที่ escape แล้ว: JSON.stringify({...}) สำหรับ fetch, object ธรรมดาสำหรับ Axios และ json= พร้อม dict ของ Python (True, False, None) สำหรับ requests และ httpx ทำให้แก้ไข payload และใส่ตัวแปรได้ง่าย
ความแตกต่างที่ควรรู้
เบราว์เซอร์ไม่สามารถปิดการตรวจสอบใบรับรองหรือส่งคำขอเดียวผ่าน proxy ได้ ดังนั้น -k และ -x จะปรากฏเป็นเพียงคอมเมนต์ในโค้ด fetch สำหรับเบราว์เซอร์ curl จะไม่ตาม redirect เว้นแต่คุณใส่ -L ในขณะที่ fetch, requests และ Go ตาม redirect เป็นค่าเริ่มต้น body ที่ส่งด้วย -d โดยไม่มี Content-Type จะถูก curl เข้ารหัสแบบฟอร์ม หากดูเหมือน JSON ตัวแปลงจะส่งเป็น JSON และแจ้งให้คุณทราบในคำเตือน
คำถามที่พบบ่อย
คำสั่ง curl ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
คัดลอกคำขอเป็น cURL จาก Chrome อย่างไร?
รองรับการอัปโหลดไฟล์หรือไม่?
-F name=@file จะกลายเป็น FormData ใน JavaScript, dict files= ใน Python, mime/multipart ใน Go และ CURLFile ใน PHP ส่วน -d @file และ -T file จะอ่าน request body จากไฟล์ตัวเลือกที่ตัวแปลงไม่รู้จักจะเป็นอย่างไร?
-s, -v หรือ -o จะถูกข้าม เพราะไม่ได้เปลี่ยนคำขอ