ตัวแปลง cURL: แปลง cURL เป็น Fetch, Python, Axios และอื่น ๆ

วางคำสั่ง curl เช่น คำสั่งที่คัดลอกจาก DevTools ของเบราว์เซอร์ แล้วรับโค้ดพร้อมรันใน 8 ภาษา แปลงครบทั้ง header, JSON body, ฟอร์ม, การอัปโหลดไฟล์, auth และคุกกี้

ทำงานในเบราว์เซอร์ไม่ต้องสมัครไม่มีการอัปโหลด

แปลงเป็น
JavaScript fetch

    

    วิธีใช้ ตัวแปลง cURL

    1. คัดลอกคำขอเป็น cURL: ใน DevTools ของ Chrome หรือ Firefox คลิกขวาที่คำขอในแท็บ Network → Copy → Copy as cURL
    2. วางลงในช่องข้อมูลขาเข้า รองรับคำสั่งหลายบรรทัดที่ใช้ \, การต่อบรรทัดด้วย ^ ของ Windows และสตริง $'…'
    3. เลือกเป้าหมาย: JavaScript fetch, Axios, Node.js, Python requests, Python httpx, Go, PHP หรือ HTTPie
    4. อ่านคำเตือนใต้ผลลัพธ์ ซึ่งจะแสดงตัวเลือกที่ไม่มีสิ่งเทียบเท่าในภาษาเป้าหมาย
    5. คัดลอกโค้ดหรือดาวน์โหลดเป็นไฟล์

    ทำไมต้องแปลงคำสั่ง curl เป็นโค้ด?

    curl คือภาษากลางของ HTTP เอกสาร API แสดงตัวอย่างเป็น curl, DevTools ของเบราว์เซอร์ส่งออกคำขอเป็น curl และทีมซัพพอร์ตก็ส่งขั้นตอนการทำซ้ำเป็น curl เมื่อคุณต้องการใช้คำขอนั้นในแอปพลิเคชัน คุณต้องเขียนใหม่เอง: ย้าย -H ทุกตัวไปไว้ใน headers object เปลี่ยน -d เป็น body แปลง -u เป็น basic auth และต้องจำว่า -G ย้ายข้อมูลไปไว้ใน query string ตัวแปลงนี้ทำงานแปลเหล่านี้ให้คุณ และสร้างโค้ดที่วางลงในโปรเจกต์ได้ทันที

    ตัวเลือก curl ที่รองรับ

    ตัวเลือกแปลงเป็น
    -X, -I, -GHTTP method (อนุมานเป็น POST เมื่อมี body)
    -H, -A, -e, -bHeader, User-Agent, Referer และคุกกี้
    -d, --data-raw, --data-binary, --data-urlencode, --jsonRequest body: JSON object, ฟิลด์ฟอร์ม หรือข้อความดิบ
    -FMultipart form data รวมถึงการอัปโหลด @file
    -u, --oauth2-bearerBasic 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 ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
    ไม่ การพาร์สและการสร้างโค้ดทำงานในเบราว์เซอร์ของคุณทั้งหมด คำสั่งที่คัดลอกจาก DevTools มักมีคุกกี้และโทเค็น จึงไม่มีการอัปโหลดหรือจัดเก็บใด ๆ
    คัดลอกคำขอเป็น cURL จาก Chrome อย่างไร?
    เปิด DevTools (F12) ไปที่แท็บ Network คลิกขวาที่คำขอแล้วเลือก Copy → Copy as cURL (bash) แบบ cmd สำหรับ Windows ก็ใช้ได้เช่นกัน
    รองรับการอัปโหลดไฟล์หรือไม่?
    รองรับ -F name=@file จะกลายเป็น FormData ใน JavaScript, dict files= ใน Python, mime/multipart ใน Go และ CURLFile ใน PHP ส่วน -d @file และ -T file จะอ่าน request body จากไฟล์
    ตัวเลือกที่ตัวแปลงไม่รู้จักจะเป็นอย่างไร?
    จะแสดงเป็นคำเตือนใต้ผลลัพธ์ จึงไม่มีอะไรถูกทิ้งไปเงียบ ๆ แฟล็กที่เกี่ยวกับการแสดงผลเท่านั้น เช่น -s, -v หรือ -o จะถูกข้าม เพราะไม่ได้เปลี่ยนคำขอ
    ใน Python ควรใช้ requests หรือ httpx?
    requests เป็นตัวเลือกมาตรฐานมายาวนานสำหรับสคริปต์แบบ synchronous ส่วน httpx มี API แทบเหมือนกัน เพิ่มการรองรับ HTTP/2 และ async และไม่ตาม redirect เว้นแต่คุณสั่ง ซึ่งใกล้เคียงกับ curl มากกว่า

    เครื่องมือที่เกี่ยวข้อง