Отправка HTTP-запроса

Ruby:
Отправка HTTP-запроса

Как это сделать:

Ruby делает отправку HTTP-запросов довольно простой. Вот самый быстрый способ с использованием стандартной библиотеки Net::HTTP.

require 'net/http'
require 'uri'

uri = URI('http://example.com')
response = Net::HTTP.get(uri)
puts response

Это выведет HTML содержимое http://example.com.

Возможно, вы захотите также отправлять данные:

require 'net/http'
require 'uri'

uri = URI('http://example.com/api')
res = Net::HTTP.post_form(uri, 'key1' => 'value1', 'key2' => 'value2')
puts res.body

Это отправляет POST запрос с данными и показывает ответ.

Подробнее:

Раньше отправка HTTP-запросов была более сложной, и возможно, вам нужно было использовать gem, такой как HTTParty. Но встроенная библиотека Ruby Net::HTTP проделала большой путь. Теперь она поддерживает большинство необходимых вещей.

Однако, Net::HTTP может быть многословной. Если ваш проект требует больше функциональности HTTP или синтаксического сахара, HTTParty или Faraday являются отличными альтернативами. Эти гемы предоставляют более выразительный API и могут обрабатывать более сложные сценарии, такие как промежуточное ПО или разные адаптеры.

В основе отправки HTTP-запроса с Ruby лежит создание HTTP-клиента, настройка объекта запроса с методом, заголовками и телом при необходимости, а затем отправка запроса для получения ответа.

Пример с HTTParty:

require 'httparty'

response = HTTParty.get('http://example.com')
puts response.body

Это делает то же самое, что и Net::HTTP.get, но с меньшей конфигурацией.

Смотрите также:

Для более детальной информации очень полезны документы Ruby:

И если у вас большой аппетит к сетевым возможностям HTTP в Ruby, загляните сюда: