Chuyển đổi curl sang OCaml

Chuyển đổi các lệnh curl thành mã OCaml bằng Cohttp. 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ư. Đối với Rust, hãy thử trình chuyển đổi curl sang Rust của chúng tôi. Đối với Elixir, hãy xem curl sang Elixir. Dưới đây là các ví dụ OCaml sẵn sàng sử dụng.

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

OCaml Cohttp là gì?

Cohttp là thư viện HTTP client và server tiêu chuẩn cho OCaml. Nó hỗ trợ cả backend Lwt (luồng nhẹ) và Async cho I/O đồng thời. Cài đặt bằng opam install cohttp-lwt-unix. Nó cung cấp một API hàm (functional), type-safe cho các yêu cầu HTTP. curl2code sử dụng Cohttp cho tất cả các chuyển đổi OCaml.

Cohttp vs ocurl vs piaf — nên sử dụng cái nào?

Cohttp là thư viện HTTP OCaml tiêu chuẩn với hỗ trợ Lwt/Async. ocurl bao bọc libcurl, cho phép truy cập tất cả các tính năng của curl từ OCaml. piaf mới hơn, hỗ trợ HTTP/2 nguyên bản. Sử dụng Cohttp cho OCaml chuẩn mực (idiomatic), ocurl khi bạn cần các tính năng đặc thù của curl. Đối với các ngôn ngữ hàm tương tự, hãy xem curl sang Elixir hoặc curl sang Clojure.

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

Thêm header Authorization vào yêu cầu: Header.add headers "Authorization" ("Bearer " ^ token). Đối với Basic auth, mã hóa base64 thông tin xác thực bằng gói base64. Các header của Cohttp là bất biến (immutable) — hãy tạo chúng bằng Header.of_list hoặc chuỗi các lệnh gọi Header.add.

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

Xây dựng body multipart thủ công với các chuỗi boundary, hoặc sử dụng một thư viện như multipart_form. Thiết lập header Content-Type với boundary. Body của Cohttp là một chuỗi đơn giản hoặc stream — định dạng payload multipart theo RFC 2046. curl2code xử lý chuyển đổi cờ -F.

Làm thế nào để xử lý lỗi trong các yêu cầu HTTP OCaml?

Cohttp với Lwt trả về các promise — sử dụng cú pháp Lwt.catch hoặc try%lwt ... with để xử lý lỗi. Kiểm tra mã trạng thái phản hồi bằng Response.status response. Hệ thống kiểu của OCaml đảm bảo bạn xử lý các trường hợp thất bại. Sử dụng pattern matching trên các mã trạng thái để xử lý triệt để.

Làm thế nào để thực hiện các yêu cầu HTTP đồng thời trong OCaml?

Với backend Lwt: sử dụng Lwt.all [request1; request2] để thực thi song song hoặc Lwt_list.map_p để ánh xạ qua các URL. Với Async: sử dụng Deferred.all. Tính đồng thời cộng tác (cooperative concurrency) của OCaml thông qua Lwt hoặc Async cung cấp I/O đồng thời an toàn, hiệu quả mà không lo ngại về an toàn luồng (thread safety).

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

Với Lwt, sử dụng Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] để thực hiện cuộc đua giữa yêu cầu và bộ hẹn giờ. Cohttp không có các tùy chọn timeout tích hợp sẵn — hãy bao bọc Lwt promise bằng một timeout combinator. Đối với việc thử lại (retries), hãy triển khai một hàm đệ quy với số lần thử giảm dần.

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

Cohttp không có hỗ trợ proxy tích hợp sẵn. Sử dụng ocurl (libcurl bindings) cho nhu cầu proxy: thiết lập tùy chọn CURLOPT_PROXY. Ngoài ra, thiết lập biến môi trường HTTP_PROXY và cấu hình kết nối để định tuyến qua host và port của proxy một cách thủ công.

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

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

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

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

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