Конвертировать curl в Ruby
curl2code преобразует команды curl в код Ruby с использованием стандартной библиотеки net/http. Все работает локально в вашем браузере через WebAssembly для полной конфиденциальности. Если вы предпочитаете Python, ознакомьтесь с нашим конвертером curl в Python. Для Elixir см. curl в Elixir. Ниже приведены практические примеры на Ruby.
Как скопировать curl из браузера
- 1
Откройте DevTools
Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.
- 2
Перейдите на вкладку Network
Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.
- 3
Скопируйте как cURL
Нажмите правой кнопкой мыши на запрос → Copy → Copy as cURL. Затем вставьте его выше.
Часто задаваемые вопросы
Что такое Ruby net/http?
Ruby net/http — это стандартная библиотека HTTP-клиента, включенная в каждую установку Ruby. Она обрабатывает GET, POST, multipart-загрузки, SSL и кастомные заголовки. Установка гемов не требуется. curl2code также поддерживает HTTParty — популярный гем, который упрощает общие паттерны 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 form data в Ruby?
С net/http используйте гем 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 { ... } для базовой конкурентности или гем concurrent-ruby для пулов потоков. Для асинхронного ввода-вывода используйте async-http с гемом 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 token на Ruby?
Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код net/http с заголовком авторизации: req['Authorization'] = 'Bearer YOUR_TOKEN'. curl2code распознает Bearer tokens как в флагах -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 сопоставляет каждый вариант с подходящим API net/http.