2021-09-14 Ruby Basic Authentication with net/http
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 コアのコード
下記でオリジナルコードが追える。