Cách Gửi Yêu Cầu POST Với cURL

cURL là một tiện ích dòng lệnh đa năng được thiết kế để truyền dữ liệu liền mạch qua các giao thức mạng khác nhau, bao gồm HTTP, HTTPS và FTP. Có sẵn trên tất cả các hệ điều hành chính, cURL đã trở thành công cụ tiêu chuẩn để gửi yêu cầu HTTP từ dòng lệnh. Tiện ích đa nền tảng của nó hỗ trợ các giao thức như HTTP, HTTPS, FTP và IMAP, giúp dễ dàng gửi yêu cầu đến API và thu thập dữ liệu trang web. Do có sẵn rộng rãi và hỗ trợ giao thức, cURL thường được tham chiếu trong tài liệu API REST như một cách nhanh chóng để kiểm tra các lệnh gọi API trực tiếp từ dòng lệnh.
Hướng dẫn này đi sâu vào cách thực hiện các yêu cầu POST bằng cURL, cho phép giao tiếp hiệu quả với máy chủ thông qua các hướng dẫn dòng lệnh đơn giản.
Yêu cầu POST là gì?
Yêu cầu POST là phương thức HTTP được sử dụng để gửi dữ liệu đến máy chủ và là một trong những phương thức HTTP phổ biến nhất. Không giống như yêu cầu GET, trong đó dữ liệu được bao gồm trong URL, yêu cầu POST truyền dữ liệu trong phần thân yêu cầu. Điều này cho phép truyền dữ liệu riêng biệt và tránh được giới hạn độ dài URL do trình duyệt áp đặt cho yêu cầu GET.
Yêu cầu POST thường được sử dụng để gửi biểu mẫu, tải tệp lên và gửi dữ liệu JSON đến API. Vì dữ liệu được lưu trữ trong nội dung yêu cầu nên không hiển thị trong lịch sử trình duyệt và không giống như yêu cầu GET, yêu cầu POST thường không được trình duyệt lưu vào bộ nhớ đệm.
Các trường hợp sử dụng thực tế cho các yêu cầu POST của cURL
Các yêu cầu POST của cURL được sử dụng rộng rãi trong nhiều tình huống khác nhau, bao gồm:
- Kiểm tra API REST – Các nhà phát triển sử dụng cURL để kiểm tra nhanh các điểm cuối API trước khi triển khai chúng trong các ứng dụng.
- Tự động hóa việc gửi biểu mẫu – Bằng cách sử dụng cURL, bạn có thể tự động hóa các tương tác với biểu mẫu web, gửi dữ liệu mà không cần nhập thủ công.
- Tải tệp lên – Nhiều API cho phép tải tệp lên bằng yêu cầu POST, khiến cURL trở thành công cụ hiệu quả để tự động hóa quy trình này.
- Tương tác với Hệ thống Xác thực – Nhà phát triển có thể sử dụng cURL để xác thực người dùng và truy cập các tài nguyên được bảo vệ bằng mã thông báo hoặc thông tin xác thực API.
- Thu thập và tích hợp dữ liệu – Việc trích xuất và tích hợp dữ liệu từ nhiều nguồn trực tuyến khác nhau được đơn giản hóa bằng cách sử dụng chức năng yêu cầu POST của cURL.
Thực hiện yêu cầu POST với cURL
Để bắt đầu sử dụng cURL cho các yêu cầu POST, hãy đảm bảo rằng nó đã được cài đặt trên hệ thống của bạn. Nếu bạn chưa cài đặt, hãy tham khảo hướng dẫn của chúng tôi về cách thiết lập cURL. Dưới đây là bảng tham chiếu tóm tắt các tùy chọn cURL cần thiết:
Cờ ngắn | Cờ dài | Lập luận | Sự miêu tả |
-X | --lời yêu cầu | (sử dụng "POST" cho các yêu cầu POST) | Xác định phương thức HTTP cho yêu cầu |
-b | --bánh quy | Gửi cookie trong yêu cầu | |
-c | --hũ bánh quy | Lưu cookie đã nhận vào một tập tin | |
-d | --dữ liệu | Truyền dữ liệu trong yêu cầu POST | |
-f | --thất bại | Đảm bảo lỗi im lặng khi máy chủ gặp lỗi | |
-F | --hình thức | <tên=nội dung> | Gửi dữ liệu biểu mẫu (application/x-www-form-urlencoded) |
-H | --tiêu đề | tiêu đề/@file | Bao gồm tiêu đề HTTP tùy chỉnh |
-Tôi | --bao gồm | Hiển thị tiêu đề HTTP trong phản hồi | |
-l | --cái đầu | Chỉ lấy tiêu đề | |
-k | --không an toàn | Bỏ qua xác minh SSL | |
-L | --vị trí | Theo dõi chuyển hướng (3XX) | |
-ôi | --đầu ra | Lưu đầu ra vào một tập tin được chỉ định | |
-Ồ | --tên-từ-xa | Lưu đầu ra với tên tệp từ xa | |
-S | --im lặng | Ngăn chặn các thông báo đầu ra | |
-v | --dài dòng | Cho phép xuất ra chi tiết (gỡ lỗi) | |
-w | --viết ra | Chi tiết phản hồi đầu ra |
Để xem danh sách đầy đủ các tùy chọn có sẵn, hãy sử dụng:
curl --trợ giúp
Các lỗi thường gặp và cách khắc phục
Mặc dù cURL rất mạnh, người dùng thường gặp lỗi khi gửi yêu cầu POST. Sau đây là một số vấn đề và giải pháp phổ biến:
- curl: (6) Không thể giải quyết máy chủ – Điều này có nghĩa là tên miền không đúng hoặc có vấn đề về giải quyết DNS. Kiểm tra lại URL.
- curl: (7) Không kết nối được với máy chủ – Chỉ ra rằng máy chủ không thể truy cập được. Đảm bảo máy chủ đang trực tuyến và bạn có kết nối internet đang hoạt động.
- curl: (35) Lỗi kết nối SSL – Nếu yêu cầu không thành công do sự cố SSL, hãy thử sử dụng -k để bỏ qua xác minh SSL.
- HTTP 400 Bad Request – Điều này có nghĩa là máy chủ đã từ chối yêu cầu, thường là do định dạng dữ liệu không đúng. Kiểm tra loại nội dung và tải trọng dữ liệu.
- HTTP 401 Unauthorized – Xảy ra khi yêu cầu xác thực nhưng thiếu hoặc không đúng. Đảm bảo khóa API hoặc thông tin xác thực được truyền đúng với -u hoặc -H "Authorization: Bearer <token>".
Cú pháp yêu cầu POST cơ bản
curl -X POST -d "Xin chào" https://example.com/api
Trong lệnh này:
- -X POST chỉ định loại yêu cầu.
- -d "Xin chào" xác định dữ liệu đang được gửi.
- https://example.com/api là URL mục tiêu.
Thiết lập Tiêu đề Kiểu Nội dung
curl -X POST -H "Content-Type: text/plain" -d "Xin chào" https://example.com/api
Thêm -H "Content-Type: text/plain" sẽ thông báo cho máy chủ rằng định dạng dữ liệu là văn bản thuần túy.
Gửi dữ liệu JSON
curl -X POST -H "Loại nội dung: application/json" -d '{"key":"value"}' https://example.com/api
Sử dụng application/json làm kiểu nội dung đảm bảo dữ liệu được diễn giải chính xác dưới dạng JSON.
Gửi dữ liệu 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
Tải lên tập tin với POST
curl -X POST -F "file=@/path/to/img.png" https://example.com/api/upload
Để tải lên nhiều tệp:
curl -X POST -F "file=@/path/to/img1.png" -F "file=@/path/to/img2.png" https://example.com/api/upload
Xác thực với cURL
curl -u tên người dùng:mật khẩu https://example.com/login
Thay thế tên người dùng và mật khẩu bằng thông tin xác thực.
Phần kết luận
cURL đơn giản hóa tương tác HTTP với các tùy chọn dòng lệnh mạnh mẽ và linh hoạt. Bằng cách nắm vững các yêu cầu POST, các nhà phát triển có thể quản lý hiệu quả các giao tiếp API, truyền dữ liệu và tải tệp lên. Cho dù bạn cần kiểm tra các điểm cuối API, tự động gửi biểu mẫu hay thu thập dữ liệu từ các trang web, cURL đều cung cấp giải pháp nhẹ và hiệu quả. Hãy tiếp tục thử nghiệm với cURL để tối ưu hóa quy trình làm việc của bạn!
Xin lưu ý rằng Plisio cũng cung cấp cho bạn:
Tạo hóa đơn tiền điện tử sau 2 lần nhấp and Chấp nhận quyên góp tiền điện tử
14 tích hợp
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 thư viện cho các ngôn ngữ lập trình phổ biến nhất
- PHP Thư viện
- Python Thư viện
- React Thư viện
- Vue Thư viện
- NodeJS Thư viện
- Android sdk Thư viện
- C#
- Ruby
- Java
- Kotlin
19 tiền điện tử và 12 chuỗi khối
- 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)