Trình tạo lệnh cURL
Xây dựng các lệnh cURL một cách trực quan với các trường dành cho phương thức, URL, các header, tham số truy vấn, JSON / form / raw body, xác thực basic / bearer / API key, và thời gian chờ (timeout). Sao chép lệnh đã sẵn sàng để chạy cho terminal, các tập lệnh (script), và CI.
Trình chặn quảng cáo đang ngăn chúng tôi hiển thị quảng cáo
MiniWebtool miễn phí nhờ quảng cáo. Nếu công cụ này hữu ích, hãy ủng hộ bằng Premium (không quảng cáo + nhanh hơn) hoặc cho phép MiniWebtool.com rồi tải lại trang.
- Hoặc nâng cấp Premium (không quảng cáo)
- Cho phép quảng cáo cho MiniWebtool.com, rồi tải lại
Giới thiệu về Trình tạo lệnh cURL
Trình tạo lệnh cURL trực quan giúp biến một câu lệnh phức tạp với nhiều cờ thành một biểu mẫu có hướng dẫn rõ ràng. Bạn chỉ cần chọn phương thức HTTP, dán URL, liệt kê các header và tham số truy vấn trên mỗi dòng một mục, thiết lập thân yêu cầu và chọn chế độ xác thực — công cụ sẽ tự động viết câu lệnh curl tương ứng cho bạn. Một khung xem trước kiểu giao diện terminal sẽ cập nhật liên tục khi bạn nhập, giúp bạn có thể thấy câu lệnh thành hình ngay trước khi sao chép.
Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Nó không hề thực hiện cuộc gọi nào đến URL bạn nhập và không lưu trữ các header, token hay nội dung thân yêu cầu của bạn. Bạn sẽ nhận được một câu lệnh sẵn sàng để thực thi để dán vào terminal, một bước trong quy trình CI, tệp Makefile, phần nhập dữ liệu Postman hoặc trong báo cáo lỗi.
Tại sao trình tạo trực quan lại vượt trội so với việc viết tay cURL
⚡ Thử nghiệm nhanh hơn
Chỉnh sửa một trường, toàn bộ câu lệnh sẽ cập nhật ngay lập tức. Không còn phải đếm từng dấu gạch chéo ngược hay phải nhớ xem liệu cờ -d có tự động áp dụng Content-Type mặc định hay không.
🛡 Trích dẫn chuẩn xác
Các kiểu trích dẫn bằng dấu nháy đơn, nháy kép, định dạng cho Windows CMD và PowerShell đều được xử lý tự động cho bạn, bao gồm cả ký tự ' nằm bên trong cặp dấu '...' trên bash hoặc việc thoát dấu phần trăm trên CMD.
🔁 Các mã lệnh tương đương
Cùng một yêu cầu đó sẽ được tạo mã tương ứng cho JavaScript fetch, Python requests, và HTTPie — rất hữu ích khi bạn muốn gửi một kịch bản lỗi để đồng nghiệp kiểm tra ở phía frontend hoặc backend.
Cách sử dụng Trình tạo lệnh cURL trực quan
- Chọn một phương thức. GET để đọc dữ liệu, POST để tạo mới, PUT/PATCH để cập nhật, DELETE để xóa, HEAD để chỉ lấy các header, và OPTIONS để hỏi máy chủ xem những phương thức nào được hỗ trợ trên tài nguyên đó.
- Nhập URL. Tốt nhất là sử dụng một URL đầy đủ như
https://api.example.com/v1/users. Nếu bạn bỏ sót phần giao thức, trình tạo sẽ tự động chuẩn hóa nó về dạnghttps://. - Liệt kê các tham số truy vấn. Mỗi dòng một mục theo dạng
khóa=giá_trị. Hãy để trống phần giá trị đối với các tham số kiểu cờ hiệu. Trình tạo sẽ nối chúng lại sau dấu?. - Liệt kê các header. Mỗi dòng một mục theo định dạng
Tên-Header: giá_trị. Trình tạo sẽ tự động lọc bỏ các mục trùng lặp và tự động thêmContent-Typecho các thân yêu cầu dạng JSON, form, và XML nếu bạn chưa thiết lập chúng. - Chọn một loại thân yêu cầu. Chọn JSON để dán một đối tượng dữ liệu, Form cho các trường định dạng
application/x-www-form-urlencoded, Multipart cho việc tải tệp lên (sử dụngtên=@/đường/dẫn/tới/tệp), Raw để gửi dữ liệu byte nguyên bản, hoặc XML dành cho các SOAP API hoặc các API tương tự. - Thiết lập xác thực. Chọn Basic đối với định dạng
tên_người_dùng:mật_khẩu, Bearer đối với các mã token OAuth và JWT, hoặc API key nằm ở header (nhưX-API-Key) hoặc dưới dạng tham số truy vấn (như?api_key=...). - Thêm các cờ hiệu. Bật tắt các cờ hiệu cURL phổ biến nhất: theo dõi chuyển hướng, yêu cầu nén gzip, hiển thị các header phản hồi, chế độ chi tiết (verbose), chế độ im lặng, hoặc bỏ qua kiểm tra TLS khi gỡ lỗi trên môi trường máy cục bộ (localhost).
- Chọn kiểu định dạng đầu ra. Định dạng nhiều dòng với các dấu gạch chéo ngược tiếp diễn sẽ dễ đọc nhất trong các mã tập lệnh; định dạng một dòng là tốt nhất để sao chép/dán nhanh; định dạng Windows CMD sử dụng dấu nháy kép và nhân đôi dấu phần trăm; định dạng PowerShell sẽ gọi trực tiếp tệp
curl.exeđể không bị xung đột với tên viết tắt (alias) nội bộ của PowerShell. - Sao chép & chạy. Nhấp vào nút Sao chép câu lệnh, dán vào terminal của bạn và kiểm tra kết quả phản hồi.
Giải thích về các kiểu định dạng đầu ra
Nhiều dòng (mặc định) đặt mỗi cờ hiệu trên một dòng riêng biệt kèm theo dấu gạch chéo ngược ở cuối. Đây là định dạng bạn nên dùng trong tài liệu, các bài viết hướng dẫn và mã shell script vì nó giúp đọc dữ liệu dễ dàng từ trên xuống dưới.
curl \
-X POST \
-H 'Content-Type: application/json' \
--data '{"name":"Jesse"}' \
'https://api.example.com/v1/users'
Một dòng sẽ nối mọi thành phần lại với nhau bằng các dấu cách — cực kỳ hoàn hảo để dán nhanh vào terminal, ghi log thông báo hoặc gửi qua các luồng chat trao đổi.
Windows CMD chuyển đổi các dấu nháy đơn kiểu bash thành dấu nháy kép (do CMD không phân tích cú pháp dấu nháy đơn) và thoát các dấu phần trăm bằng cách nhân đôi chúng, giúp câu lệnh có thể chạy nguyên văn từ giao diện cmd.exe hoặc từ một tệp .bat.
PowerShell gọi đích danh tệp lệnh curl.exe bởi vì trong môi trường PowerShell, từ khóa curl là một tên viết tắt (alias) của lệnh Invoke-WebRequest vốn có cú pháp tham số hoàn toàn khác biệt.
Cú pháp trích dẫn: Dấu nháy đơn so với Dấu nháy kép
Trên môi trường bash của Linux và macOS, dấu nháy đơn là lựa chọn an toàn nhất vì bash sẽ không khai triển các biến hoặc dấu nháy ngược nằm bên trong chúng. Trình tạo sẽ chuyển đổi ký tự ' nguyên bản bên trong giá trị thành chuỗi thoát ký tự '\'' để các dấu nháy đơn bao quanh bên ngoài vẫn khớp cặp với nhau.
Dấu nháy kép là lựa chọn thích hợp khi bạn muốn bash giữ lại các quy tắc thoát ký tự nhưng vẫn chấp nhận các ký tự nháy mà nếu không làm vậy thì sẽ rất khó để thoát chuỗi. Trình tạo sẽ tiến hành thoát các ký tự $, `, \\, và " nằm bên trong dấu nháy kép để đảm bảo giá trị được truyền đi mà không bị thay đổi.
Các mô hình xác thực phổ biến
Xác thực Basic gửi đi chuỗi header Authorization: Basic base64(user:password). Cờ hiệu cURL -u user:password sẽ tự động thực hiện việc mã hóa này cho bạn. Luôn lưu ý sử dụng giao thức HTTPS — vì xác thực Basic qua giao thức HTTP thông thường rất dễ bị đánh chặn.
Bearer token (như OAuth 2.0, JWT, GitHub personal access tokens) sẽ thêm header dạng Authorization: Bearer <token>. Hãy bảo mật mã token này như một mật khẩu thực sự: thực hiện đổi mới (rotate) ngay nếu nó vô tình bị lộ trong ảnh chụp màn hình, tin nhắn Slack hoặc log hệ thống CI.
API key có thể nằm trong một header (như X-API-Key, X-RapidAPI-Key) hoặc trong một tham số truy vấn (như ?api_key=...). Việc đặt ở header thông thường sẽ an toàn hơn do các URL hay bị ghi lại bởi các hệ thống reverse proxy và lịch sử duyệt web.
Tập hợp các phương thức HTTP phổ biến
- GET — đọc một tài nguyên dữ liệu. Phương thức này phải đảm bảo tính an toàn và không thay đổi trạng thái hệ thống (idempotent).
- POST — tạo một tài nguyên mới, hoặc gửi dữ liệu không phù hợp với ngữ nghĩa của GET. Phương thức này không có tính chất idempotent.
- PUT — thay thế hoàn toàn một tài nguyên tại một URL đã xác định trước. Có tính chất idempotent.
- PATCH — cập nhật một phần tài nguyên. Sử dụng JSON Patch (RFC 6902) hoặc merge patch (RFC 7396) tùy thuộc vào thiết kế của API.
- DELETE — xóa bỏ một tài nguyên dữ liệu. Có tính chất idempotent.
- HEAD — tương tự như GET nhưng máy chủ chỉ trả về các dữ liệu header. Thường dùng để kiểm tra tính tươi mới của bộ nhớ đệm (cache freshness) hoặc độ dài nội dung (content length) mà không cần tải toàn bộ phần thân về.
- OPTIONS — hỏi máy chủ xem những phương thức nào được phép sử dụng và đọc các thông tin cấu hình CORS.
Xử lý sự cố với câu lệnh đã tạo của bạn
- Lỗi chứng chỉ SSL. Chỉ nên bật cờ
--insecurekhi làm việc với các host đáng tin cậy hoặc các máy chủ cục bộ của chính bạn. Khi gỡ lỗi trên môi trường sản xuất, bạn nên chỉ định cURL trỏ đến đúng gói chứng chỉ CA bằng cờ--cacert. - Không có phản hồi hoặc bị treo lệnh. Hãy chạy kèm cờ
-vở chế độ chi tiết để quan sát quá trình bắt tay TLS và thông tin các header. Bước kết nối bị treo thường có nghĩa là máy chủ không thể tiếp cận được; bước truyền dữ liệu bị treo có nghĩa là máy chủ đã chấp nhận yêu cầu nhưng xử lý chậm. - Lỗi 415 Unsupported Media Type. Máy chủ đang mong đợi một loại định dạng dữ liệu
Content-Typekhác. Trình tạo sẽ tự động thêm giá trị chuẩn xác cho các thân yêu cầu dạng JSON, form, và XML nếu bạn chưa thiết lập. - Lỗi 401 so với 403. Lỗi 401 nghĩa là thông tin xác thực bị thiếu hoặc không hợp lệ (hãy kiểm tra lại Bearer token); lỗi 403 nghĩa là thông tin xác thực hợp lệ nhưng tài khoản đó không có quyền truy cập (hãy kiểm tra lại phạm vi - scope).
- Lỗi 413 Payload Too Large. Một số hệ thống máy chủ tuyến trên giới hạn dung lượng thân yêu cầu ở mức 1–10 MB. Hãy cân nhắc sử dụng các endpoint tải lên theo từng phần (chunked upload) hoặc truyền dữ liệu dạng luồng (streaming).
Lưu ý về an ninh và quyền riêng tư
- Trình tạo này hoạt động và xử lý hoàn toàn ở phía client (trình duyệt). Không có bất kỳ dữ liệu nào được gửi đến URL bạn nhập; kết quả đầu ra duy nhất chỉ là văn bản của câu lệnh.
- Tránh dán các mã token của môi trường sản xuất thật. Nếu bắt buộc phải làm, hãy bảo mật câu lệnh được tạo ra như các thông tin nhạy cảm — không đưa nó vào các kho lưu trữ mã nguồn công khai (public repo), không dán vào khung chat với bot, hoặc đính kèm vào các luồng báo cáo sự cố công khai.
- Nên ưu tiên sử dụng các biến môi trường trong các tập lệnh script: hãy viết
-H 'Authorization: Bearer '"$TOKEN"thay vì viết cứng mã token vào mã nguồn. Đóng dấu nháy đơn rồi mở dấu nháy kép xung quanh biến để bash có thể thực hiện khai triển giá trị biến đó.
Câu hỏi thường gặp (FAQ)
- Tôi có thể nhập một câu lệnh cURL từ Chrome DevTools vào đây được không?
- Trình tạo này hoạt động theo chiều ngược lại — nó tạo ra câu lệnh cURL từ các trường biểu mẫu. Để làm theo chiều ngược lại, hãy sao chép dưới dạng cURL từ DevTools và sử dụng một công cụ chuyên phân tích cú pháp cURL (cURL parser).
- Thân yêu cầu định dạng JSON có cần phải được thoát ký tự trước không?
- Không cần. Hãy dán đoạn mã JSON chính xác theo định dạng nó hiển thị. Trình tạo sẽ tự lo liệu việc trích dẫn dấu để đảm bảo phần thân yêu cầu đến được máy chủ mà không bị biến đổi.
- Sự khác biệt giữa cờ
-dvà cờ--data-urlencodelà gì? - Cờ
-dgửi đi các byte của thân yêu cầu một cách nguyên bản. Cờ--data-urlencodethực hiện mã hóa dạng phần trăm (percent-encode) cho từng trường dữ liệu, đây chính là cách mà một trình duyệt gửi dữ liệu đối với một biểu mẫu HTML. Trình tạo sẽ áp dụng cờ--data-urlencodecho loại thân yêu cầu dạng Form và dùng cờ--datacho JSON / raw / XML. - Làm thế nào để tôi tải một tệp tin lên?
- Hãy chọn loại Multipart form-data và thêm một dòng dữ liệu theo mẫu:
avatar=@/Users/jesse/photo.png. Ký tự@sẽ báo hiệu cho cURL biết cần phải đọc nội dung của tệp tin đó. - Tại sao cURL lại báo lỗi “Argument list too long”?
- Phần thân yêu cầu của bạn quá lớn, vượt quá giới hạn argv của shell. Hãy chuyển phần thân đó thành một tệp tin và truyền vào thông qua cú pháp
--data @body.json. - Công cụ này có hỗ trợ HTTP/2 và HTTP/3 không?
- Bản thân công cụ cURL hỗ trợ cả hai giao thức này thông qua các cờ
--http2và--http3nếu phiên bản cURL cài đặt trên máy cục bộ của bạn được biên dịch kèm các thư viện hỗ trợ tương ứng. Bạn có thể tự thêm các cờ này bằng tay vào câu lệnh đã được tạo ra.
Tham khảo nội dung, trang hoặc công cụ này như sau:
"Trình tạo lệnh cURL" tại https://MiniWebtool.com/vi// từ MiniWebtool, https://MiniWebtool.com/
bởi đội ngũ miniwebtool. Cập nhật: 2026-05-21