Cách sử dụng
- Sao chép một yêu cầu dưới dạng curl, ví dụ từ công cụ nhà phát triển của trình duyệt (tab Network, nhấp chuột phải, Copy as cURL) hoặc từ tài liệu API.
- Dán vào ô nhập. Việc nối dòng bằng \ đều được chấp nhận.
- Chọn JavaScript fetch, Node.js axios, Python requests hoặc PHP cURL.
- Đọc các ghi chú bên dưới mã, sau đó sao chép hoặc tải xuống kết quả.
Cách hoạt động
Trình chuyển đổi trước tiên tách lệnh thành các từ giống như shell POSIX: dấu nháy đơn, dấu nháy kép với ký tự thoát bằng dấu gạch chéo ngược, chuỗi $'…' và dòng tiếp nối bằng dấu gạch chéo ngược đều được hiểu. Các biến shell như $TOKEN không được khai triển; chúng được giữ nguyên dạng văn bản.
Các tùy chọn curl được hỗ trợ: URL (hoặc --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form và --form-string (các trường và tải tệp @file với ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (chuỗi cookie), -L/--location và --compressed. Các tùy chọn ngắn có thể gộp lại, ví dụ -sSL, và giá trị có thể gắn liền, ví dụ -XPOST.
Các quy tắc tuân theo curl: nhiều giá trị -d được nối bằng &; dữ liệu khiến yêu cầu trở thành POST trừ khi -X hoặc -G chỉ định khác; -G thêm dữ liệu vào URL dưới dạng chuỗi truy vấn; --json đặt header Content-Type và Accept thành application/json. Khi phần thân là JSON và Content-Type cho biết như vậy, mã sẽ gửi đối tượng thực (json= trong Python, một mảng với json_encode trong PHP) thay vì chuỗi đã thoát. Với biểu mẫu multipart, header Content-Type được để cho thư viện xử lý để ranh giới chính xác.
-k/--insecure được cố ý bỏ qua và có ghi chú giải thích. Các tùy chọn chỉ thay đổi đầu ra riêng của curl (-s, -S, -v, -i, -o, --fail và tương tự) được bỏ qua kèm ghi chú. Bất kỳ tùy chọn nào khác tạo ra lỗi rõ ràng nêu tên tùy chọn đó, thay vì mã âm thầm hoạt động khác đi. Một điểm khác biệt còn lại: curl chỉ đi theo chuyển hướng khi có -L, trong khi fetch, axios và requests đi theo chúng theo mặc định; mã PHP chỉ đi theo khi có -L.
Công cụ chỉ tạo mã. Nó không bao giờ gửi yêu cầu, vì vậy token và mật khẩu trong lệnh không bị sử dụng ở bất kỳ đâu.
Ví dụ
Tái hiện yêu cầu trình duyệt bằng Python
Sao chép lời gọi API bị lỗi từ tab Network của Chrome dưới dạng cURL và chuyển đổi sang Python requests. Các header, cookie và nội dung JSON được giữ nguyên, giúp bạn tái hiện lỗi trong script.
Sử dụng tài liệu API trong Node.js
Một tài liệu API hiển thị “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. Phiên bản axios dùng auth: { username: "key", password: "" } và nội dung form-encoded.
Tải tệp lên trong PHP
“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” trở thành CURLOPT_POSTFIELDS với new CURLFile('invoice.pdf', 'application/pdf') và trường note.
Câu hỏi thường gặp
Công cụ này có gửi yêu cầu của tôi không?
Không. Công cụ chỉ phân tích văn bản lệnh và tạo mã. Không có yêu cầu nào được gửi đi, vì vậy khóa API hoặc cookie trong lệnh không được sử dụng hoặc lưu trữ.
Tại sao -k/--insecure không được chuyển đổi?
Việc tắt kiểm tra chứng chỉ khiến kết nối dễ bị chặn bắt. Mã được tạo vẫn bật kiểm tra; nếu chứng chỉ của máy chủ không đáng tin cậy, hãy sửa chứng chỉ hoặc kho tin cậy thay vì tắt nó.
Tại sao tôi nhận được “tùy chọn không được hỗ trợ”?
Trình chuyển đổi chỉ dịch những tùy chọn có thể tái tạo chính xác ý nghĩa. Proxy, chứng chỉ máy khách, cookie jar và các tùy chọn tương tự bị từ chối để bạn không nhận được mã chạy khác với curl.
Công cụ có hoạt động với lệnh Windows cmd không?
Các lệnh được sao chép dưới dạng “cURL (bash)” hoạt động tốt nhất. Windows cmd dùng ^ để nối dòng và cách trích dẫn khác; dấu ^ ở cuối dòng được chấp nhận, nhưng các ký tự thoát khác của cmd có thể không.
Quyền riêng tư
Lệnh chỉ được phân tích trong trình duyệt của bạn và không có yêu cầu nào được gửi đi. Không có gì được tải lên, lưu trữ hoặc đưa vào phân tích.