Basic Authentication

class Net::HTTP - Documentation for Ruby 3.0.0

uri = URI('http://example.com/index.html?key=value')

req = Net::HTTP::Get.new(uri)
req.basic_auth 'user', 'pass'

res = Net::HTTP.start(uri.hostname, uri.port) {|http|
  http.request(req)
}
puts res.body

startにブロックを渡せば、ファイルオープンと同じように最後にクローズを勝手にやってくれるので安心。

Ruby Net::HTTPの使い方と(直接)使うべきでない時

library net/http (Ruby 3.0.0 リファレンスマニュアル)

require 'net/http'

Net::HTTP.start('www.example.com') {|http|
  req = Net::HTTP::Get.new('/secret-page.html')
  req.basic_auth 'account', 'password'
  response = http.request(req)
  print response.body
}

Net::HTTP Cheat Sheet

require "net/http"
require "uri"

uri = URI.parse("http://google.com/")

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth("username", "password")
response = http.request(request)

HTTPS

uri = URI('https://secure.example.com/some_path?query=string')

Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
  request = Net::HTTP::Get.new uri
  response = http.request request # Net::HTTPResponse object
end

ruby/ruby コアのコード

下記でオリジナルコードが追える。

ruby/http.rb at master · ruby/ruby