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