[Ruby] open-uri で https と basic 認証を越えてページを取得する

nokogiri でパースする前処理。
ローカルのファイルも扱える形で動かす。

#!/usr/bin/ruby
require 'open-uri'
require 'openssl'
# Basic auth
USER     = 'foo'
PASSWORD = 'bar'
uri = 'https://test.example.com/'
begin
  html = open(uri,
    {:http_basic_authentication => [USER, PASSWORD],
     :ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE}).read
rescue => e
  puts e
end
puts html

参考資料。

HTTP header を確認

Cocoa Packet Analyzer で Authorization を検索して確認もできる。

2015-04-09_open-uri_01

補遺