Cách gửi tiêu đề HTTP bằng cURL: Hướng dẫn toàn diện kèm ví dụ
Nắm vững cách gửi và nhận HTTP headers bằng cURL với hướng dẫn toàn diện này. Khám phá các ví dụ, header tùy chỉnh và mẹo khắc phục sự cố.
Trong bài này 11 mục
- Điều kiện tiên quyết
- Cú pháp cURL cơ bản
- Ví dụ 1: Gửi yêu cầu GET với tiêu đề tùy chỉnh
- Ví dụ 2: Gửi yêu cầu POST bằng dữ liệu JSON
- Ví dụ 3: Đặt nhiều tiêu đề
- Ví dụ 4: Gửi Cookie
- Ví dụ 5: Theo dõi chuyển hướng
- Ví dụ 6: Gửi tác nhân người dùng tùy chỉnh
- Ví dụ 7: Gửi tiêu đề yêu cầu không có dữ liệu
- Ví dụ 8: Gửi xác thực cơ bản
- Ví dụ 9: Chế độ gỡ lỗi và chi tiết
Gửi tiêu đề HTTP bằng cURL là một kỹ năng cơ bản cho bất kỳ ai làm việc với API hoặc dịch vụ web. Tiêu đề HTTP truyền tải thông tin cần thiết về yêu cầu của bạn, chẳng hạn như loại nội dung, ủy quyền, v.v. cURL, một công cụ dòng lệnh mạnh mẽ để thực hiện các yêu cầu HTTP, cho phép bạn tùy chỉnh và gửi các tiêu đề này một cách dễ dàng. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn quy trình gửi tiêu đề HTTP bằng cURL, kèm theo nhiều ví dụ thực tế.

Điều kiện tiên quyết#
Trước khi chúng ta đi sâu vào các ví dụ, hãy đảm bảo bạn đã cài đặt cURL trên hệ thống của mình. Bạn có thể kiểm tra xem nó đã được cài đặt chưa bằng cách chạy:
curl --version
Nếu nó chưa được cài đặt, bạn có thể tải xuống từ trang web chính thức của cURL.
Cú pháp cURL cơ bản#
Cú pháp cơ bản để gửi yêu cầu HTTP bằng cURL là:
curl [options] [URL]
Để bao gồm các tiêu đề HTTP trong yêu cầu của bạn, bạn có thể sử dụng tùy chọn -H hoặc –header theo sau là thông tin tiêu đề.
Ví dụ 1: Gửi yêu cầu GET với tiêu đề tùy chỉnh#
Hãy bắt đầu với một yêu cầu GET đơn giản tới một API giả định, bao gồm cả tiêu đề tùy chỉnh. Giả sử bạn muốn bao gồm tiêu đề “Ủy quyền” với khóa API của mình.
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/resource
Thay thế YOUR_API_KEY bằng khóa API thực tế của bạn.
Ví dụ 2: Gửi yêu cầu POST bằng dữ liệu JSON#
Trong ví dụ này, chúng tôi sẽ gửi yêu cầu POST có tải trọng JSON và tiêu đề loại nội dung tùy chỉnh.
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "email": "[email protected]"}' https://api.example.com/users
Lệnh này chỉ định phương thức yêu cầu là POST (-X POST), đặt loại nội dung thành JSON (-H “Content-Type: application/json”) và bao gồm dữ liệu JSON với -d.
Ví dụ 3: Đặt nhiều tiêu đề#
Bạn có thể bao gồm nhiều tiêu đề trong một yêu cầu cURL. Ở đây, chúng tôi đang gửi yêu cầu với cả tiêu đề “Ủy quyền” và “Tác nhân người dùng”.
curl -H "Authorization: Bearer YOUR_API_KEY" -H "User-Agent: MyClient/1.0" https://api.example.com/resource
Ví dụ 4: Gửi Cookie#
Để gửi cookie theo yêu cầu của bạn, hãy sử dụng tùy chọn -b hoặc –cookie theo sau là dữ liệu cookie.
curl -b "session=12345; preferences=darkmode" https://api.example.com/dashboard
Ví dụ này gửi hai cookie: “phiên” và “tùy chọn”.
Ví dụ 5: Theo dõi chuyển hướng#
Theo mặc định, cURL không tuân theo chuyển hướng HTTP. Để bật chuyển hướng theo dõi, hãy sử dụng tùy chọn -L hoặc –location.
curl -L https://example.com
Lệnh này sẽ theo bất kỳ chuyển hướng nào và hiển thị nội dung trang cuối cùng.
Ví dụ 6: Gửi tác nhân người dùng tùy chỉnh#
Bạn có thể đặt tiêu đề Tác nhân người dùng tùy chỉnh để xác định yêu cầu của mình.
curl -H "User-Agent: MyCustomApp/1.0" https://api.example.com/resource
Tiêu đề Tác nhân người dùng tùy chỉnh rất hữu ích khi tương tác với các API yêu cầu tác nhân người dùng cụ thể.
Ví dụ 7: Gửi tiêu đề yêu cầu không có dữ liệu#
Nếu bạn cần gửi tiêu đề mà không có nội dung yêu cầu, bạn có thể sử dụng tùy chọn -I hoặc –head.
curl -I https://api.example.com/resource
Lệnh này gửi một yêu cầu HEAD, yêu cầu này chỉ tìm nạp các tiêu đề chứ không tìm nạp nội dung thực tế.
Ví dụ 8: Gửi xác thực cơ bản#
Để gửi thông tin xác thực HTTP Cơ bản, bạn có thể bao gồm tiêu đề “Ủy quyền” với tên người dùng và mật khẩu được mã hóa trong Base64.
curl -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" https://api.example.com/resource
Thay thế BASE64_ENCODED_CREDENTIALS bằng tên người dùng và mật khẩu được mã hóa Base64 của bạn (ví dụ: tên người dùng:mật khẩu).
Ví dụ 9: Chế độ gỡ lỗi và chi tiết#
Khi khắc phục sự cố hoặc kiểm tra yêu cầu và phản hồi HTTP, bạn có thể sử dụng chế độ dài dòng của cURL với tùy chọn -v hoặc –verbose.
curl -v https://api.example.com/resource
Điều này sẽ hiển thị thông tin chi tiết về yêu cầu và phản hồi, bao gồm cả tiêu đề.
Gửi tiêu đề HTTP bằng cURL là một kỹ năng quan trọng để làm việc với các dịch vụ web và API. Với các ví dụ được cung cấp trong hướng dẫn này, bạn có thể tùy chỉnh các yêu cầu của mình, xử lý xác thực, gửi cookie, v.v. Khi bạn đã quen với các khả năng của cURL, bạn sẽ được trang bị tốt để tương tác với các dịch vụ web khác nhau một cách hiệu quả.
