Конвертувати curl у Ruby

curl2code конвертує команди curl у код Ruby за допомогою стандартної бібліотеки net/http. Усе виконується локально у вашому браузері через WebAssembly для повної приватності. Якщо ви віддаєте перевагу Python, перегляньте наш конвертер curl у Python. Для Elixir дивіться curl у Elixir. Нижче наведено практичні приклади на Ruby.

Як скопіювати curl з вашого браузера

  1. 1

    Відкрийте DevTools

    Натисніть F12 або Ctrl+Shift+I, щоб відкрити інструменти розробника у вашому браузері.

  2. 2

    Перейдіть на вкладку Network

    Натисніть на вкладку Network і виконайте дію, яка ініціює HTTP-запит.

  3. 3

    Скопіюйте як cURL

    Клацніть правою кнопкою миші на запит → CopyCopy as cURL. Потім вставте його вище.

Часті запитання

Що таке Ruby net/http?

Ruby net/http — це HTTP-клієнт стандартної бібліотеки, включений у кожну інсталяцію Ruby. Він обробляє GET, POST, multipart завантаження, SSL та кастомні заголовки. Встановлення gem не потрібне. curl2code також підтримує HTTParty — популярний gem, що спрощує типові HTTP-шаблони за допомогою чистого декларативного API.

net/http проти HTTParty проти Faraday — що варто використовувати?

net/http вбудована і не має залежностей — чудово підходить для простих завдань і скриптів. HTTParty надає чистий DSL з автоматичним парсингом JSON. Faraday пропонує middleware, шаблони адаптерів та найбільшу гнучкість. Для подібної простоти скриптів дивіться наш конвертер curl у Python або конвертер curl у PHP.

Як керувати автентифікацією в Ruby?

З net/http: request["Authorization"] = "Bearer token". Для Basic-автентифікації: request.basic_auth("user", "pass"). HTTParty використовує headers: { "Authorization" => "Bearer token" } або basic_auth: { username: "user", password: "pass" }. curl2code обробляє як -u, так і прапорці заголовків.

Як надіслати multipart дані форми в Ruby?

З net/http використовуйте gem multipart-post або створюйте тіло multipart вручну, використовуючи Net::HTTP::Post з рядками меж. HTTParty спрощує це за допомогою body: { file: File.open("path") }. curl2code конвертує прапорці -F для обох варіантів бібліотек.

Як обробляти помилки HTTP в Ruby?

З net/http перевіряйте response.is_a?(Net::HTTPSuccess) або використовуйте response.value, що викликає виняток при статусі, відмінному від 2xx. HTTParty повертає об'єкт відповіді з методами .success? та .code. Для стійких з'єднань перехоплюйте Errno::ECONNREFUSED та Net::ReadTimeout.

Як робити конкурентні HTTP-запити в Ruby?

Стандартна бібліотека Ruby є синхронною. Використовуйте Thread.new { ... } для базової конкурентності або gem concurrent-ruby для пулів потоків. Для асинхронного I/O використовуйте async-http з gem Async. Typhoeus забезпечує паралельну чергу запитів. Для вбудованої підтримки асинхронності дивіться curl у Elixir.

Як встановити таймаути в Ruby?

З net/http: http.open_timeout = 10 (з'єднання) та http.read_timeout = 30 (відповідь). HTTParty приймає опцію timeout: 30. Вони відображаються на curl --connect-timeout та --max-time. Завжди встановлюйте таймаути, щоб уникнути нескінченного зависання запитів.

Як використовувати проксі в Ruby?

З net/http: Net::HTTP.new(host, port, proxy_host, proxy_port). Або встановіть змінні середовища http_proxy та https_proxy — Ruby підтримує їх автоматично. HTTParty використовує опцію http_proxy: 'http://proxy:8080'. curl2code конвертує прапорці -x у правильний синтаксис Ruby.

Як надіслати POST-запит із тілом JSON у Ruby?

Конвертуйте команду curl POST, таку як curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, у Ruby за допомогою curl2code. Згенерований код використовує Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json'). curl2code автоматично виявляє прапорці -d/--data із вмістом JSON і встановлює відповідний заголовок Content-Type у коді net/http.

Як додати авторизацію за допомогою Bearer-токена у Ruby?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL у curl2code, і він згенерує код net/http із заголовком авторизації: req['Authorization'] = 'Bearer YOUR_TOKEN'. curl2code виявляє Bearer-токени як у прапорцях -H "Authorization: Bearer ...", так і в --oauth2-bearer. Для Basic auth використовуйте -u user:pass.

Як встановити заголовок Content-Type у Ruby?

curl2code конвертує curl -H "Content-Type: application/json" URL у код net/http із відповідним заголовком: req['Content-Type'] = 'application/json'. Для даних -d curl за замовчуванням використовує application/x-www-form-urlencoded; для завантаження форм -F використовується multipart/form-data. curl2code зіставляє кожен варіант із правильним net/http API.

Корисні посилання

Посібники з curl

Конвертувати curl в інші мови