Chuyển đổi curl sang Ruby

curl2code chuyển đổi các lệnh curl thành mã Ruby bằng thư viện net/http tiêu chuẩn. Mọi thứ đều chạy cục bộ 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. Nếu bạn thích Python, hãy kiểm tra trình chuyển đổi curl sang Python của chúng tôi. Đối với Elixir, hãy xem curl sang Elixir. Dưới đây là các ví dụ Ruby thực tế.

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

Ruby net/http là gì?

net/http của Ruby là thư viện chuẩn HTTP client được bao gồm trong mọi bản cài đặt Ruby. Nó xử lý GET, POST, tải lên multipart, SSL và các header tùy chỉnh. Không cần cài đặt gem. curl2code cũng hỗ trợ HTTParty, một gem phổ biến giúp đơn giản hóa các mẫu HTTP thông thường với một API khai báo sạch sẽ.

net/http so với HTTParty so với Faraday — tôi nên sử dụng cái nào?

net/http được tích hợp sẵn và không có phụ thuộc — tuyệt vời cho các tác vụ đơn giản và script. HTTParty cung cấp một DSL sạch sẽ với khả năng tự động phân tích cú pháp JSON. Faraday cung cấp middleware, các mẫu adapter và sự linh hoạt nhất. Để có sự đơn giản tương tự trong viết script, hãy xem trình chuyển đổi curl sang Python hoặc curl sang PHP của chúng tôi.

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

Với net/http: request["Authorization"] = "Bearer token". Đối với xác thực Basic: request.basic_auth("user", "pass"). HTTParty sử dụng headers: { "Authorization" => "Bearer token" } hoặc basic_auth: { username: "user", password: "pass" }. curl2code xử lý cả cờ -u và cờ header.

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

Với net/http, hãy sử dụng gem multipart-post hoặc tự xây dựng body multipart thủ công bằng cách sử dụng Net::HTTP::Post với các chuỗi ranh giới. HTTParty đơn giản hóa việc này với body: { file: File.open("path") }. curl2code chuyển đổi các cờ -F cho cả hai biến thể thư viện.

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

Với net/http, hãy kiểm tra response.is_a?(Net::HTTPSuccess) hoặc sử dụng response.value để ném lỗi cho các trạng thái không phải 2xx. HTTParty trả về một đối tượng phản hồi với các phương thức .success?.code. Đối với các kết nối bền vững, hãy giải cứu (rescue) Errno::ECONNREFUSEDNet::ReadTimeout.

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

Thư viện chuẩn của Ruby là đồng bộ. Sử dụng Thread.new { ... } cho tính đồng thời cơ bản hoặc gem concurrent-ruby cho các thread pool. Đối với I/O bất đồng bộ, hãy sử dụng async-http với gem Async. Typhoeus cung cấp hàng đợi yêu cầu song song. Để có hỗ trợ bất đồng bộ tích hợp sẵn, hãy xem curl sang Elixir.

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

Với net/http: http.open_timeout = 10 (kết nối) và http.read_timeout = 30 (phản hồi). HTTParty chấp nhận tùy chọn timeout: 30. Những tùy chọn này ánh xạ tới --connect-timeout--max-time của curl. Luôn thiết lập timeout để tránh các yêu cầu bị treo vô thời hạn.

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

Với net/http: Net::HTTP.new(host, port, proxy_host, proxy_port). Hoặc thiết lập các biến môi trường http_proxyhttps_proxy — Ruby tự động tuân thủ các biến này. HTTParty sử dụng tùy chọn http_proxy: 'http://proxy:8080'. curl2code chuyển đổi các cờ -x sang cú pháp Ruby phù hợp.

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

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

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

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

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