Å sende en HTTP-forespørsel

Ruby:
Å sende en HTTP-forespørsel

How to:

Ruby har flere måter å sende HTTP-forespørsler på. Her er et enkelt eksempel med net/http biblioteket:

require 'uri'
require 'net/http'

uri = URI('http://www.example.com/index.html')
response = Net::HTTP.get_response(uri)

puts response.body if response.is_a?(Net::HTTPSuccess)

Output:

<!doctype html>
<html>
<head>
    <title>Example Domain</title>
...
</html>

Eller med httparty gem:

require 'httparty'

response = HTTParty.get('http://www.example.com/index.html')

puts response.body if response.success?

Deep Dive

Før Ruby hadde innebygde biblioteker for nettverksforespørsler, måtte programmere bruke socket-programmering for hånd. net/http kom og forenklet prosessen. Alternativer som httparty og faraday tilbyr mer funksjonalitet og syntaktisk sukker. Disse gemmene pakker net/http’s funksjonalitet og gir ekstra features som middleware-støtte og enklere testing.

Når du sender HTTP-forespørsler, er det viktig å håndtere nettverksfeil og dårlige serverresponser. Noen detaljer, som tid ut (timeout) eller lesing av store svar, kan kreve ytterligere konfigurasjon.

See Also