Chuyển đổi curl sang Dart

Chuyển đổi các lệnh curl thành mã Dart bằng gói http. curl2code chạy hoàn toàn trong trình duyệt của bạn thông qua WebAssembly — dữ liệu của bạn luôn được riêng tư. Để biết về Kotlin, hãy thử trình chuyển đổi curl sang Kotlin của chúng tôi. Đối với Swift, hãy xem curl sang Swift. Dưới đây là các ví dụ Dart sẵn sàng sử dụng cho Flutter.

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

Gói http của Dart là gì?

Gói http là client HTTP được khuyến nghị cho Dart và Flutter. Nó cung cấp một API đơn giản dựa trên Future cho GET, POST, tải lên multipart và streaming. Cài đặt bằng dart pub add http. Nó hoạt động trên tất cả các nền tảng Dart — di động, web và máy chủ. curl2code sử dụng nó làm mặc định cho các chuyển đổi Dart.

http so với dio so với HttpClient — tôi nên sử dụng cái nào?

http đơn giản và nhẹ — tuyệt vời cho các yêu cầu cơ bản. dio bổ sung thêm các interceptor, FormData, tiến trình tải xuống và hủy bỏ. HttpClient (dart:io) ở cấp độ thấp hơn và được tích hợp sẵn nhưng dài dòng hơn. Đối với các ứng dụng Flutter cần interceptor, hãy chọn dio. Đối với các client di động tương tự, hãy xem curl sang Kotlin hoặc curl sang Swift.

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

Truyền các header vào yêu cầu: http.get(url, headers: { "Authorization": "Bearer $token" }). Đối với xác thực Basic, hãy mã hóa bằng base64Encode(utf8.encode("$user:$pass")). curl2code chuyển đổi các cờ -u-H 'Authorization' sang mã Dart với các header được định kiểu chính xác.

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

Sử dụng http.MultipartRequest: tạo yêu cầu, thêm các trường bằng request.fields['key'] = 'value', và các tệp bằng request.files.add(await http.MultipartFile.fromPath('file', path)). Sau đó gửi bằng request.send(). curl2code chuyển đổi các cờ -F sang mẫu này.

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

Gói http không ném ra lỗi khi gặp lỗi HTTP — hãy kiểm tra response.statusCode theo cách thủ công. Bọc các cuộc gọi trong try/catch cho SocketException (lỗi mạng) và TimeoutException. Sử dụng http.Client với close() để dọn dẹp tài nguyên đúng cách trong các ứng dụng chạy lâu dài.

Làm thế nào để sử dụng async/await với Dart HTTP?

Tất cả các phương thức Dart HTTP đều trả về Future — sử dụng final response = await http.get(Uri.parse(url)). async/await của Dart được tích hợp sẵn vào ngôn ngữ. Đối với các yêu cầu song song, hãy sử dụng Future.wait([request1, request2]). Đối với các mẫu bất đồng bộ tương tự, hãy xem curl sang TypeScript hoặc curl sang Swift.

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

Sử dụng phương thức .timeout() trên bất kỳ Future nào: http.get(url).timeout(Duration(seconds: 30)). Điều này sẽ ném ra TimeoutException khi vượt quá thời gian. Để kiểm soát nhiều hơn, hãy tạo một http.Client và cấu hình thông qua HttpClient cơ sở từ dart:io với connectionTimeout.

Làm thế nào để sử dụng proxy trong Dart?

Sử dụng HttpClient từ dart:io: HttpClient()..findProxy = (uri) => 'PROXY proxy:8080'. Đối với gói http, hãy tạo một IOClient tùy chỉnh bọc HttpClient đã được cấu hình. Dart cũng tuân thủ các biến môi trường HTTP_PROXYNO_PROXY.

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

Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang Dart bằng cách sử dụng curl2code. Mã được tạo sử dụng http.post(uri, body: jsonEncode(data), headers: {'Content-Type': 'application/json'}). 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ã http.

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

Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã http với header xác thực: headers: {'Authorization': 'Bearer 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 Dart?

curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã http với header chính xác: headers: {'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 http 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