วิธีการส่งคำขอ POST ด้วย cURL

cURL เป็นยูทิลิตี้บรรทัดคำสั่งอเนกประสงค์ที่ออกแบบมาเพื่อการถ่ายโอนข้อมูลอย่างราบรื่นผ่านโปรโตคอลเครือข่ายต่างๆ รวมถึง HTTP, HTTPS และ FTP cURL พร้อมใช้งานบนระบบปฏิบัติการหลักทั้งหมดและได้กลายเป็นเครื่องมือมาตรฐานสำหรับการส่งคำขอ HTTP จากบรรทัดคำสั่ง ยูทิลิตี้ข้ามแพลตฟอร์มรองรับโปรโตคอลเช่น HTTP, HTTPS, FTP และ IMAP ทำให้ส่งคำขอไปยัง API และสแกปเว็บไซต์ได้ง่าย เนื่องจาก cURL มักถูกอ้างถึงในเอกสาร REST API ว่าเป็นวิธีที่รวดเร็วในการทดสอบการเรียกใช้ API โดยตรงจากบรรทัดคำสั่ง เนื่องจาก cURL พร้อมใช้งานอย่างกว้างขวางและรองรับโปรโตคอล
บทช่วยสอนนี้เจาะลึกการดำเนินการคำขอ POST โดยใช้ cURL เพื่อให้สามารถสื่อสารกับเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพด้วยคำสั่งบรรทัดคำสั่งที่เรียบง่าย
คำขอ POST คืออะไร?
คำขอ POST คือวิธีการ HTTP ที่ใช้ส่งข้อมูลไปยังเซิร์ฟเวอร์และเป็นหนึ่งในวิธีการ HTTP ที่ใช้กันทั่วไปที่สุด ซึ่งแตกต่างจากคำขอ GET ที่ข้อมูลรวมอยู่ใน URL คำขอ POST จะส่งข้อมูลในเนื้อหาคำขอ วิธีนี้ช่วยให้ถ่ายโอนข้อมูลได้โดยไม่ระบุตัวตนและหลีกเลี่ยงข้อจำกัดความยาว URL ที่เบราว์เซอร์กำหนดในคำขอ GET
คำขอ POST มักใช้สำหรับการส่งแบบฟอร์ม การอัปโหลดไฟล์ และการส่งข้อมูล JSON ไปยัง API เนื่องจากข้อมูลถูกเก็บไว้ในเนื้อหาคำขอ จึงไม่ปรากฏในประวัติเบราว์เซอร์ และไม่เหมือนกับคำขอ GET คำขอ POST มักไม่ถูกแคชโดยเบราว์เซอร์
กรณีการใช้งานจริงสำหรับคำขอ POST ของ cURL
คำขอ POST ของ cURL ถูกใช้กันอย่างแพร่หลายในสถานการณ์ต่างๆ รวมถึง:
- การทดสอบ REST API – นักพัฒนาใช้ cURL เพื่อทดสอบจุดสิ้นสุดของ API อย่างรวดเร็ว ก่อนที่จะนำไปใช้ในแอปพลิเคชัน
- การทำให้การส่งแบบฟอร์มอัตโนมัติ – ด้วยการใช้ cURL คุณสามารถทำให้การโต้ตอบกับแบบฟอร์มบนเว็บเป็นแบบอัตโนมัติ ส่งข้อมูลโดยไม่ต้องป้อนข้อมูลด้วยตนเอง
- การอัปโหลดไฟล์ – API จำนวนมากอนุญาตให้มีการอัปโหลดไฟล์โดยใช้คำขอ POST ทำให้ cURL เป็นเครื่องมือที่มีประสิทธิภาพในการทำให้กระบวนการนี้เป็นอัตโนมัติ
- การโต้ตอบกับระบบการตรวจสอบสิทธิ์ – นักพัฒนาสามารถใช้ cURL เพื่อตรวจสอบสิทธิ์ของผู้ใช้และเข้าถึงทรัพยากรที่ได้รับการปกป้องด้วยโทเค็น API หรือข้อมูลประจำตัว
- การขูดข้อมูลและบูรณาการ – การแยกและบูรณาการข้อมูลจากแหล่งออนไลน์ที่แตกต่างกันทำได้ง่ายขึ้นด้วยความสามารถในการร้องขอ POST ของ cURL
การดำเนินการคำขอ POST ด้วย cURL
หากต้องการเริ่มใช้ cURL สำหรับคำขอ POST โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้งไว้ในระบบของคุณแล้ว หากคุณยังไม่ได้ติดตั้ง โปรดดูคำแนะนำในการตั้งค่า cURL ของเรา ด้านล่างนี้เป็นตารางอ้างอิงที่สรุปตัวเลือก cURL ที่จำเป็น:
ธงสั้น | ธงยาว | ข้อโต้แย้ง | คำอธิบาย |
-เอ็กซ์ | --ขอ | (ใช้ "POST" สำหรับคำขอ POST) | กำหนดวิธี HTTP สำหรับการร้องขอ |
-ข | --คุกกี้ | ส่งคุกกี้ในการร้องขอ | |
-ซี | --โถใส่คุ้กกี้ | บันทึกคุกกี้ที่ได้รับลงในไฟล์ | |
-ดี | --ข้อมูล | ส่งข้อมูลในการร้องขอ POST | |
-ฟ | --ล้มเหลว | รับประกันความล้มเหลวแบบเงียบ ๆ ในข้อผิดพลาดของเซิร์ฟเวอร์ | |
-เอฟ | --รูปร่าง | <ชื่อ=เนื้อหา> | ส่งข้อมูลแบบฟอร์ม (application/x-www-form-urlencoded) |
-ชม | --ส่วนหัว | ส่วนหัว/@ไฟล์ | รวมถึงส่วนหัว HTTP ที่กำหนดเอง |
-ฉัน | --รวม | แสดงส่วนหัว HTTP ในการตอบสนอง | |
-ล | --ศีรษะ | ดึงเฉพาะส่วนหัวเท่านั้น | |
-เค | --ไม่ปลอดภัย | ข้ามการตรวจสอบ SSL | |
-แอล | --ที่ตั้ง | ติดตามการเปลี่ยนเส้นทาง (3XX) | |
-โอ | --เอาท์พุต | บันทึกผลลัพธ์ไปยังไฟล์ที่ระบุ | |
-โอ | --ชื่อระยะไกล | บันทึกเอาท์พุตด้วยชื่อไฟล์ระยะไกล | |
-ส | --เงียบ | ระงับข้อความเอาท์พุต | |
-วี | --รายละเอียด | เปิดใช้งานการแสดงผลรายละเอียด (การแก้จุดบกพร่อง) | |
-ว. | --เขียนออก | รายละเอียดการตอบกลับผลลัพธ์ |
หากต้องการดูรายการตัวเลือกที่มีทั้งหมด ให้ใช้:
ขด --ช่วยเหลือ
ข้อผิดพลาดทั่วไปและวิธีแก้ไข
แม้ว่า cURL จะมีประสิทธิภาพ แต่ผู้ใช้มักพบข้อผิดพลาดเมื่อส่งคำขอ POST ต่อไปนี้คือปัญหาและวิธีแก้ไขทั่วไป:
- curl: (6) ไม่สามารถระบุโฮสต์ได้ – หมายความว่าชื่อโดเมนไม่ถูกต้องหรือมีปัญหาในการระบุ DNS โปรดตรวจสอบ URL อีกครั้ง
- curl: (7) ไม่สามารถเชื่อมต่อกับโฮสต์ได้ – ระบุว่าไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้ ตรวจสอบว่าเซิร์ฟเวอร์ออนไลน์อยู่และคุณมีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานได้
- curl: (35) ข้อผิดพลาดในการเชื่อมต่อ SSL – หากการร้องขอล้มเหลวเนื่องจากปัญหา SSL ให้ลองใช้ -k เพื่อข้ามการตรวจสอบ SSL
- HTTP 400 Bad Request – หมายความว่าเซิร์ฟเวอร์ปฏิเสธคำขอ โดยมักเกิดจากรูปแบบข้อมูลที่ไม่ถูกต้อง ตรวจสอบประเภทเนื้อหาและเพย์โหลดข้อมูล
- HTTP 401 ไม่ได้รับอนุญาต – เกิดขึ้นเมื่อต้องมีการตรวจสอบสิทธิ์แต่ขาดหายไปหรือไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าได้ส่งคีย์ API หรือข้อมูลรับรองอย่างถูกต้องด้วย -u หรือ -H "Authorization: Bearer <token>"
ไวยากรณ์คำขอ POST ขั้นพื้นฐาน
curl -X POST -d "สวัสดี" https://example.com/api
ในคำสั่งนี้:
- -X POST ระบุประเภทการร้องขอ
- -d "สวัสดี" กำหนดข้อมูลที่จะถูกส่ง
- https://example.com/api คือ URL เป้าหมาย
การตั้งค่าส่วนหัวประเภทเนื้อหา
curl -X POST -H "Content-Type: text/plain" -d "สวัสดี" https://example.com/api
การเพิ่ม -H "Content-Type: text/plain" จะแจ้งให้เซิร์ฟเวอร์ทราบว่ารูปแบบข้อมูลเป็นข้อความธรรมดา
การส่งข้อมูล JSON
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://example.com/api
การใช้ application/json เป็นประเภทเนื้อหาช่วยให้แน่ใจว่าข้อมูลได้รับการตีความเป็น JSON อย่างถูกต้อง
การส่งข้อมูล XML
curl -X POST -H "Content-Type: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api
การอัพโหลดไฟล์ด้วย POST
curl -X POST -F "ไฟล์=@/path/to/img.png" https://example.com/api/upload
สำหรับการอัปโหลดไฟล์หลายไฟล์:
curl -X POST -F "ไฟล์=@/เส้นทาง/ไป/img1.png" -F "ไฟล์=@/เส้นทาง/ไป/img2.png" https://example.com/api/upload
การตรวจสอบสิทธิ์ด้วย cURL
curl -u ชื่อผู้ใช้:รหัสผ่าน https://example.com/login
เปลี่ยนชื่อผู้ใช้และรหัสผ่านด้วยข้อมูลประจำตัวจริง
บทสรุป
cURL ทำให้การโต้ตอบ HTTP ง่ายขึ้นด้วยตัวเลือกบรรทัดคำสั่งที่มีประสิทธิภาพและยืดหยุ่น ด้วยความเชี่ยวชาญในการร้องขอ POST นักพัฒนาสามารถจัดการการสื่อสาร API การส่งข้อมูล และการอัปโหลดไฟล์ได้อย่างมีประสิทธิภาพ ไม่ว่าคุณจะต้องทดสอบจุดสิ้นสุดของ API อัตโนมัติการส่งแบบฟอร์ม หรือขูดข้อมูลจากเว็บไซต์ cURL ก็มีโซลูชันที่น้ำหนักเบาและมีประสิทธิภาพ ทดลองใช้ cURL ต่อไปเพื่อเพิ่มประสิทธิภาพเวิร์กโฟลว์ของคุณ!
โปรดทราบว่า Plisio ยังให้คุณ:
สร้างใบแจ้งหนี้ Crypto ใน 2 คลิก and ยอมรับการบริจาค Crypto
14 การบูรณาการ
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 ไลบรารีสำหรับภาษาโปรแกรมยอดนิยม
- PHP ห้องสมุด
- Python ห้องสมุด
- React ห้องสมุด
- Vue ห้องสมุด
- NodeJS ห้องสมุด
- Android sdk ห้องสมุด
- C#
- Ruby
- Java
- Kotlin
19 cryptocurrencies และ 12 blockchains
- Bitcoin (BTC)
- Ethereum (ETH)
- Ethereum Classic (ETC)
- Tron (TRX)
- Litecoin (LTC)
- Dash (DASH)
- DogeCoin (DOGE)
- Zcash (ZEC)
- Bitcoin Cash (BCH)
- Tether (USDT) ERC20 and TRX20 and BEP-20
- Shiba INU (SHIB) ERC-20
- BitTorrent (BTT) TRC-20
- Binance Coin(BNB) BEP-20
- Binance USD (BUSD) BEP-20
- USD Coin (USDC) ERC-20
- TrueUSD (TUSD) ERC-20
- Monero (XMR)