Ruby:
Wysyłanie żądania HTTP
Jak to zrobić:
Ruby używa kilku gemów do obsługi HTTP, jak net/http
– wbudowane i gotowe do użycia. Oto przykład:
require 'net/http'
require 'uri'
uri = URI('http://example.com/index.html')
response = Net::HTTP.get(uri)
puts response
Jeśli uruchomisz ten kod, zobaczysz zawartość strony http://example.com/index.html
wyświetlającą się w konsoli.
Deep Dive
Zanim powstały gemy takie jak net/http
, httparty
czy rest-client
, komunikacja HTTP była bardziej skomplikowana. Musiałeś samodzielnie radzić sobie z niższym poziomem szczegółów, takich jak tworzenie gniazd sieciowych i ręczne parsowanie odpowiedzi HTTP. Na szczęście, te biblioteki ułatwiają zadanie, abstrahując większość złożoności.
Alternatywami dla net/http
są httparty
i rest-client
, które oferują bardziej intuicyjne API:
# Z 'httparty'
require 'httparty'
response = HTTParty.get('http://example.com/index.html')
puts response.body
# Z 'rest-client'
require 'rest-client'
response = RestClient.get('http://example.com/index.html')
puts response.body
Implementacje mogą różnić się w zależności od potrzeb – net/http
jest dobry do prostych rzeczy, ale dla większych aplikacji warto rozważyć coś bardziej wydajnego. Pamiętaj, że przy każdym z tych rozwiązań musisz obsłużyć możliwe wyjątki i błędy połączenia.
Zobacz także:
- Ruby Dokumentacja
Net::HTTP
: https://ruby-doc.org/stdlib/libdoc/net/http/rdoc/Net/HTTP.html HTTParty
gem: https://github.com/jnunemaker/httpartyRest-Client
gem: https://github.com/rest-client/rest-client- Przewodnik po HTTP w Ruby: https://www.rubyguides.com/2018/08/ruby-http-request/