cURL Converter: chuyển cURL sang Fetch, Python, Axios và hơn thế

Dán một lệnh curl, ví dụ lệnh sao chép từ DevTools của trình duyệt, và nhận mã chạy được ngay bằng 8 ngôn ngữ. Header, body JSON, form, tải tệp lên, xác thực và cookie đều được chuyển đổi.

Chạy trên trình duyệtKhông cần đăng kýKhông tải lên gì

Chuyển sang
JavaScript fetch

    

    Cách dùng cURL Converter

    1. Sao chép request dưới dạng cURL: trong DevTools của Chrome hoặc Firefox, nhấp chuột phải vào một request ở tab Network → Copy → Copy as cURL.
    2. Dán vào ô nhập liệu. Hỗ trợ lệnh nhiều dòng với \, ký tự nối dòng ^ của Windows và chuỗi $'…'.
    3. Chọn đích: JavaScript fetch, Axios, Node.js, Python requests, Python httpx, Go, PHP hoặc HTTPie.
    4. Đọc các cảnh báo bên dưới kết quả. Chúng liệt kê những tùy chọn không có tương đương trong ngôn ngữ đích.
    5. Sao chép mã hoặc tải xuống dưới dạng tệp.

    Vì sao cần chuyển lệnh curl thành mã?

    curl là ngôn ngữ chung của HTTP. Tài liệu API đưa ví dụ bằng curl, DevTools của trình duyệt xuất request dưới dạng curl, và đội hỗ trợ gửi bản tái hiện lỗi bằng curl. Khi muốn đưa request đó vào ứng dụng, bạn phải viết lại bằng tay: chuyển mọi -H vào object header, biến -d thành body, đổi -u thành basic auth và nhớ rằng -G chuyển dữ liệu vào query string. Công cụ này làm việc chuyển đổi đó cho bạn và tạo ra mã có thể dán thẳng vào dự án.

    Các tùy chọn curl được hỗ trợ

    Tùy chọnChuyển thành
    -X, -I, -GPhương thức HTTP (tự suy ra POST khi có body)
    -H, -A, -e, -bHeader, User-Agent, Referer và cookie
    -d, --data-raw, --data-binary, --data-urlencode, --jsonBody của request: object JSON, trường form hoặc văn bản thô
    -FDữ liệu form multipart, bao gồm tải tệp @file
    -u, --oauth2-bearerBasic auth hoặc Bearer token
    -k, -L, -m, -x, --compressedKiểm tra TLS, chuyển hướng, timeout, proxy và nén

    Body JSON trở thành object thật

    Khi request gửi JSON (có header Content-Type: application/json, --json, hoặc body phân tích được thành JSON), công cụ tạo ra cấu trúc dữ liệu gốc thay vì chuỗi đã escape: JSON.stringify({...}) cho fetch, object thuần cho Axios và json= với dict Python (True, False, None) cho requests và httpx. Nhờ vậy payload dễ chỉnh sửa và điền biến.

    Những khác biệt cần lưu ý

    Trình duyệt không thể tắt kiểm tra chứng chỉ hay định tuyến một request qua proxy, nên -k và -x chỉ xuất hiện dưới dạng chú thích trong mã fetch cho trình duyệt. curl không tự đi theo chuyển hướng trừ khi bạn truyền -L, trong khi fetch, requests và Go mặc định đi theo. Body gửi bằng -d mà không có Content-Type sẽ được curl mã hóa dạng form; nếu nó trông giống JSON, công cụ sẽ gửi dạng JSON và báo cho bạn bằng một cảnh báo.

    Câu hỏi thường gặp

    Lệnh curl của tôi có bị gửi lên máy chủ không?
    Không. Việc phân tích và sinh mã chạy hoàn toàn trong trình duyệt của bạn. Lệnh sao chép từ DevTools thường chứa cookie và token, nên không có gì được tải lên hay lưu lại.
    Làm sao sao chép request dạng cURL từ Chrome?
    Mở DevTools (F12), vào tab Network, nhấp chuột phải vào request và chọn Copy → Copy as cURL (bash). Biến thể cmd cho Windows cũng dùng được ở đây.
    Công cụ có xử lý tải tệp lên không?
    Có. -F name=@file trở thành FormData trong JavaScript, dict files= trong Python, mime/multipart trong Go và CURLFile trong PHP. -d @file và -T file đọc body của request từ tệp.
    Điều gì xảy ra với các tùy chọn công cụ không nhận ra?
    Chúng được liệt kê dưới dạng cảnh báo bên dưới kết quả để không có gì bị bỏ qua âm thầm. Các cờ chỉ ảnh hưởng đầu ra như -s, -v hoặc -o được bỏ qua vì chúng không thay đổi request.
    Nên dùng requests hay httpx trong Python?
    requests là lựa chọn mặc định lâu đời cho script đồng bộ. httpx có API gần như giống hệt, bổ sung HTTP/2 và hỗ trợ async, và không tự đi theo chuyển hướng trừ khi bạn yêu cầu, giống curl hơn.

    Công cụ liên quan