Конвертиране на 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?
net/http на Ruby е стандартната библиотека за 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 form данни в 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. За устойчиви връзки използвайте rescue за 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. Те се мапват към --connect-timeout и --max-time на curl. Винаги задавайте таймаути, за да избегнете безкрайно увиснали заявки.
Как да използвам прокси в 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 токени както от -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
Справка за всеки изходен код на curl — причини, решения и съвети за отстраняване на грешки.
Изтегляне на файлове с curl
Запазвайте файлове с -o, -O, следвайте пренасочвания, възобновявайте изтегляния и още.
SSL, TLS и прокси
Конфигурирайте сертификати, версии на TLS, HTTP/SOCKS проксита и персонализиран DNS.