Как сделать get запрос в Ruby?

Пользователь

от hanna_jacobson , в категории: Ruby , 3 года назад

Как сделать get запрос в Ruby?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@hanna_jacobson Вы можете использовать net/http библиотеку чтобы сделать get запрос в Ruby, небольшой пример кода как пример:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
require 'uri'
require 'net/http'

uri = URI('https://httpbin.org/get')
res = Net::HTTP.get_response(uri)
puts res.body if res.is_a?(Net::HTTPSuccess)

# Вывод:
# {
#   "args": {},
#   "headers": {
#     "Accept": "*/*",
#     "Accept-Encoding": "gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
#     "Host": "httpbin.org",
#     "User-Agent": "Ruby",
#     "X-Amzn-Trace-Id": "Root=1-62363017-6acfc2a745be64d46f442dd8"
#   },
#   "origin": "98.47.36.23",
#   "url": "https://httpbin.org/get"
# }


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от deshaun_cormier , 2 года назад

@hanna_jacobson 

Для отправки GET-запроса в Ruby можно использовать стандартную библиотеку Net::HTTP.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
require 'net/http'

url = URI("https://example.com/path/to/resource?param1=value1&param2=value2")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = (url.scheme == "https")

request = Net::HTTP::Get.new(url)
response = http.request(request)

puts response.code # HTTP-код ответа (например, "200" для успешного запроса)
puts response.body # Тело ответа


В этом примере создается объект URI для запрашиваемого URL. Затем создается объект Net::HTTP для соединения с сервером, и объект Net::HTTP::Get для формирования GET-запроса. Запрос отправляется методом http.request(request), который возвращает объект Net::HTTPResponse, содержащий код ответа и тело ответа.


Если вам нужно отправить GET-запрос с заголовками, вы можете добавить их в объект Net::HTTP::Get с помощью метода request.add_field(header, value). Например:

1
2
3
request = Net::HTTP::Get.new(url)
request.add_field("Authorization", "Bearer my_access_token")
response = http.request(request)