Chuyển đổi curl sang Rust

curl2code chuyển đổi các lệnh curl thành mã Rust bằng crate reqwest. Quá trình chuyển đổi chạy trong trình duyệt của bạn thông qua WebAssembly để đảm bảo quyền riêng tư hoàn toàn. Đối với Go, hãy kiểm tra trình chuyển đổi curl sang Go của chúng tôi. Đối với C, hãy xem curl sang C. Dưới đây là các ví dụ Rust thực tế với async/await.

Cách sao chép curl từ trình duyệt của bạn

  1. 1

    Mở DevTools

    Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.

  2. 2

    Đi tới tab Network

    Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.

  3. 3

    Sao chép dưới dạng cURL

    Nhấp chuột phải vào yêu cầu → Sao chépCopy as cURL. Sau đó dán nó vào bên trên.

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

Rust reqwest là gì?

reqwest là HTTP client phổ biến nhất cho Rust, được xây dựng trên nền tảng hyper. Nó cung cấp cả API blocking và async, tự động tuần tự hóa JSON thông qua serde, TLS, xử lý cookie và hỗ trợ proxy. Thêm vào với cargo add reqwest --features json. Đây là thư viện mặc định curl2code sử dụng cho các chuyển đổi Rust.

reqwest so với hyper so với ureq — tôi nên sử dụng cái nào?

reqwest là lựa chọn hàng đầu cho hầu hết các dự án — cấp cao, giàu tính năng và bất đồng bộ. hyper ở cấp thấp hơn và cung cấp khả năng kiểm soát tối đa (reqwest được xây dựng trên nó). ureq là một client tối giản, chỉ hỗ trợ blocking và không phụ thuộc vào runtime bất đồng bộ. Để có cách tiếp cận thư viện chuẩn tương tự, hãy xem curl sang Go hoặc curl sang C.

Làm thế nào để xử lý xác thực trong Rust?

Đối với Bearer: client.get(url).bearer_auth(token). Đối với Basic: client.get(url).basic_auth(user, Some(pass)). Hoặc thiết lập header thủ công với .header("Authorization", value). curl2code chuyển đổi các cờ -u-H 'Authorization: ...' sang các phương thức reqwest tương ứng.

Làm thế nào để gửi dữ liệu form multipart trong Rust?

Sử dụng reqwest::multipart::Form: tạo với Form::new(), thêm các trường văn bản với .text("key", "value") và các tệp với .file("field", path).await?. Truyền vào client.post(url).multipart(form). curl2code xử lý các cờ -F cho reqwest multipart.

Làm thế nào để xử lý lỗi HTTP trong Rust?

reqwest trả về Result bao bọc Response khi thành công hoặc reqwest::Error khi thất bại — sử dụng toán tử ? để lan truyền lỗi. Kiểm tra response.status().is_success() hoặc gọi response.error_for_status()? để chuyển đổi các mã không phải 2xx thành lỗi. Hệ thống kiểu của Rust đảm bảo tất cả các luồng lỗi đều được xử lý rõ ràng tại thời điểm biên dịch.

reqwest cần runtime bất đồng bộ nào?

reqwest yêu cầu runtime tokio theo mặc định. Chú thích hàm main của bạn với #[tokio::main]. Để sử dụng blocking mà không cần runtime bất đồng bộ, hãy bật tính năng blocking và sử dụng reqwest::blocking::Client. curl2code tạo mã async với tokio theo mặc định. Đối với một hệ sinh thái bất đồng bộ khác, hãy xem curl sang Go (goroutines).

Làm thế nào để thiết lập timeout trong Rust reqwest?

Thiết lập trên client: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. Trên mỗi yêu cầu: client.get(url).timeout(Duration::from_secs(5)). Những tùy chọn này ánh xạ tới các cờ --max-time--connect-timeout của curl.

Làm thế nào để sử dụng một proxy với reqwest?

Thiết lập một proxy trên client builder: Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. Hỗ trợ các proxy HTTP, HTTPS và SOCKS5. reqwest cũng tuân thủ các biến môi trường HTTP_PROXYHTTPS_PROXY theo mặc định. curl2code chuyển đổi các cờ -x sang cấu hình proxy.

Làm thế nào để gửi một yêu cầu POST với thân JSON trong Rust?

Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL sang Rust bằng cách sử dụng curl2code. Mã được tạo sử dụng client.post(url).json(&data).send().await?. curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã reqwest.

Làm thế nào để thêm xác thực Bearer token trong Rust?

Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã reqwest với header xác thực: .bearer_auth("YOUR_TOKEN"). curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..."--oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.

Làm thế nào để thiết lập header Content-Type trong Rust?

curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã reqwest với header chính xác: .header("Content-Type", "application/json"). Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới reqwest API chính xác.

Liên kết hữu ích

Hướng dẫn curl

Chuyển đổi curl sang các ngôn ngữ khác