26.2. HTTP/HTTPS

Odkazy:

Ukázka použití knihovny net/http a net/https. V této ukázce posílám metodou POST data na vzdálený server. Parametr url obsahuje utl na které se něco posílá, například https://server.example.com/applikace/data. Parametr vars pak obsahuje hash pojmenovaných hodnot.

require 'uri'
require 'net/http'
require 'net/https'

# Informace potřebné pro přihlášení k serveru metodou basic_auth
USERNAME = 'uzivatel'
PASSWORD = 'jehoheslo'

# POST the vars to url
def post url, vars
  uri = URI.parse url
  req = Net::HTTP::Post.new uri.path
  req.basic_auth USERNAME, PASSWORD
  req.set_form_data(vars)
  http = Net::HTTP.new uri.host, uri.port
  if uri.port == 443 then
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    #http.verify_mode = OpenSSL::SSL::VERIFY_PEER
    #http.ca_file = File.join(File.dirname(__FILE__), "cacert.pem")
    # Systémové certifikáty jsou v souborech v adresáři /etc/ssl/certs/
  end
  http.start { |http|
    res = http.request req
    puts res.body
  }
end

if $0 == __FILE__
  hodnoty_k_odeslani = {'agent' => 'true',
                        'passw' => 'heslo',
                        'teplota' => '21.4'}
  post 'https://server.example.org/teplomer/teplota', hodnoty_k_odeslani
end
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .