Skip to content

แฟล็กของ curl ฉบับสรุป

แฟล็กของ curl ที่ใช้ในงานประจำวัน จัดกลุ่มตามหน้าที่: กำหนดรูปแบบ request, ตั้ง header, ยืนยันตัวตน, แสดงตัวตน, ควบคุม output, ตาม redirect, ปรับแต่งการเชื่อมต่อ และดีบัก แต่ละแถวจับคู่แฟล็กกับการเรียกใช้ที่สมจริง

curl ส่ง HTTP request และพิมพ์ response body พลังส่วนใหญ่อยู่ที่แฟล็ก: แฟล็กเลือก method, แนบ header และข้อมูล, จัดการการยืนยันตัวตน และตัดสินว่าจะพิมพ์อะไร ใช้รูปแบบยาวในจุดที่ชัดเจนกว่า; รูปแบบสั้นคือตัวอักษรเดียว ใส่ URL ในเครื่องหมายคำพูดเพื่อไม่ให้ shell กลืน query string

ตารางอ้างอิง · 54 รายการ
54 of 54 rows
โครงสร้าง request
กำหนด HTTP methodcurl -X POST https://api.test
เพิ่ม request headercurl -H "Accept: application/json" URL
ส่ง body (ตั้งเป็น POST พร้อม content type เริ่มต้น)curl -d "name=Ada" URL
นำค่า -d ไปต่อเป็น query params บน GETcurl -G -d "q=hi" URL
ส่งข้อมูล multipart form (อัปโหลดไฟล์)curl -F "file=@photo.png" URL
ส่งข้อมูลฟอร์มโดยเข้ารหัส URLcurl --data-urlencode "name=Ada Lovelace" URL
อัปโหลดไฟล์ด้วย PUTcurl -T big.zip URL
ต่อท้ายไฟล์ระยะไกลแทนที่จะเขียนทับcurl -a -T log.txt ftp://server.test/logs/log.txt
JSON และ API
ส่ง JSON พร้อม content type ที่ถูกต้องcurl -H "Content-Type: application/json" -d '{"a":1}' URL
ส่งเนื้อหาไฟล์เป็น bodycurl -d @body.json URL
ส่ง JSON โดยไม่ต้องตั้ง header เอง (curl 7.82+)curl --json '{"a":1}' URL
การยืนยันตัวตน
ยืนยันตัวตน HTTP Basic ด้วยผู้ใช้และรหัสผ่านcurl -u ada:s3cr3t URL
ส่ง OAuth bearer tokencurl --oauth2-bearer TOKEN URL
ส่ง token scheme ใดก็ได้ด้วยตนเองcurl -H "Authorization: Bearer TOKEN" URL
แสดง client certificate และ key สำหรับ mutual TLScurl --cert client.pem --key key.pem URL
ตรวจสอบเซิร์ฟเวอร์ด้วยไฟล์ CA bundle หนึ่งไฟล์curl --cacert ca.pem URL
ตรวจสอบเซิร์ฟเวอร์ด้วยไดเรกทอรีที่เก็บ CAcurl --capath /etc/ssl/certs URL
ส่ง request ผ่าน proxycurl -x http://proxy.test:8080 URL
ข้ามการตรวจ TLS เฉพาะช่วงไปยัง proxycurl -x https://proxy.test:8443 --proxy-insecure URL
กำหนด TLS 1.3 เป็นเวอร์ชันต่ำสุดcurl --tlsv1.3 URL
การแสดงตัวตน
ส่ง User-Agent แบบกำหนดเองcurl -A "Mozilla/5.0" URL
ส่ง header Referercurl -e https://example.com/page URL
ส่งคุกกี้ไปพร้อม requestcurl -b "session=abc123" URL
บันทึกคุกกี้จาก response ลงไฟล์curl -c cookies.txt URL
ผลลัพธ์
เขียน body ลงไฟล์curl -o page.html URL
บันทึก body โดยใช้ชื่อไฟล์จากระยะไกลcurl -O https://site/file.tgz
พิมพ์ response header ไว้เหนือ bodycurl -i URL
ดึงเฉพาะ header (ส่ง HEAD)curl -I URL
ซ่อนตัววัดความคืบหน้าและข้อผิดพลาดcurl -s URL
พิมพ์สตริงรูปแบบหลังจบ body (เวลา, สถานะ)curl -w "%{http_code}\n" -o /dev/null URL
ออกด้วยรหัสไม่ใช่ศูนย์เมื่อเกิด HTTP error และข้าม body ของข้อผิดพลาดcurl -f URL
ออกด้วยรหัสไม่ใช่ศูนย์เมื่อเกิด HTTP error แต่ยังพิมพ์ bodycurl --fail-with-body URL
ตั้งชื่อไฟล์ที่บันทึกจาก header Content-Dispositioncurl -OJ URL
เชื่อมต่อการถ่ายโอนที่ค้างไว้ต่อจากจุดที่หยุดcurl -C - -O URL
แสดงแถบความคืบหน้าแทนตัววัดปกติcurl -# -O URL
พิมพ์ข้อผิดพลาดแม้รันแบบเงียบcurl -sS URL
เขียน response header ลงไฟล์curl -D headers.txt URL
ขอ response แบบบีบอัดและถอดรหัสให้curl --compressed URL
สร้างไดเรกทอรีที่ขาดหายในเส้นทาง -ocurl -o cache/api/data.json --create-dirs URL
Redirect และการเชื่อมต่อ
ตาม redirect ประเภท 3xxcurl -L URL
วินาทีสูงสุดที่รอการเชื่อมต่อ TCPcurl --connect-timeout 5 URL
วินาทีสูงสุดสำหรับ request ทั้งหมดcurl --max-time 30 URL
ข้ามการตรวจสอบใบรับรอง TLScurl -k https://self-signed.test
ลองซ้ำข้อผิดพลาดชั่วคราวสูงสุด N ครั้งcurl --retry 3 URL
ลองซ้ำกับทุกข้อผิดพลาด ไม่ใช่แค่แบบชั่วคราวcurl --retry 3 --retry-all-errors URL
บังคับการเชื่อมต่อผ่าน IPv4 หรือ IPv6curl -4 URL
จับคู่ host และพอร์ตกับที่อยู่ โดยข้าม DNScurl --resolve api.test:443:127.0.0.1 https://api.test
ผูกการถ่ายโอนกับ network interface หรือที่อยู่curl --interface eth0 URL
ถ่ายโอนหลาย URL พร้อมกันcurl -Z URL1 URL2
ใช้ HTTP/2 หรือ HTTP/3 สำหรับการถ่ายโอนcurl --http3 URL
สตรีม body เมื่อถึงแทนการเก็บในบัฟเฟอร์curl -N URL
อ่านแฟล็กเพิ่มเติมจากไฟล์ configcurl -K flags.cfg URL
ดีบัก
พิมพ์การแลกเปลี่ยน request และ response แบบเต็มcurl -v URL
แสดงข้อมูลที่ส่งและรับทั้งหมดแบบ hex-dumpcurl --trace - URL