HTTP-pyynnön lähettäminen

Ruby:
HTTP-pyynnön lähettäminen

How to:

Rubyssä HTTP-pyyntöjen lähettäminen on suoraviivaista. Tässä esimerkki käyttäen net/http-kirjastoa:

require 'net/http'
require 'uri'

uri = URI('https://reqres.in/api/users')
response = Net::HTTP.get_response(uri)

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

Sample output:

{
    "page":1,
    "per_page":6,
    "total":12,
    "total_pages":2,
    "data":[ ... ]
}

Jos tarvitset enemmän toimintaa, käytä Net::HTTP.start. Esimerkiksi POST-pyynnölle:

require 'net/http'
require 'uri'
require 'json'

uri = URI('https://reqres.in/api/users')
header = {'Content-Type': 'application/json'}
user = {name: 'Mikki Hiiri', job: 'Seikkailija'}

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = user.to_json

response = http.request(request)

puts response.body

Deep Dive

net/http on Ruby-kirjasto, joka on ollut osa kieltä melkein alusta alkaen. Se tarjoaa monipuolisen tapahtumakäsittelyn HTTP-pyyntöjä varten.

Vaihtoehtoja on. HTTParty ja Faraday ovat suosittuja helppokäyttöisyytensä ja monipuolisuutensa vuoksi. Rails-sovelluksissa ActionDispatch::Integration::RequestHelpers tarjoaa testaustarkoituksiin metodeja HTTP-pyyntöjen tekemiseen.

HTTP-pyyntöjä lähetettäessä kannattaa huomioida SSL-sertifikaatit (turvallinen yhteys) ja aikakatkaisut, etenkin tuotanto-sovelluksissa.

See Also