Rubyプログラミング

RubyからNet::HTTP::Getをプロキシ環境課で使うときのメモ

        #!/bin/ruby
        require 'net/https'
        require 'uri'

        ## プロキシの設定
        proxy_addr = 'プロキシURL'
        proxy_port = プロキシポート番号
        proxy_user = 'プロキシユーザー名'
        proxy_pass = 'プロキシパスワード'



        ## 接続先URLを指定してパース
        URL = "http://google.com/"
        uri = URI.parse(URL)


        ## リクエストのヘッダーとボディを設定する。POSTメソッドを指定
        req = Net::HTTP::Get.new(uri.path)

        # リクエストヘッダの指定(指定しない場合は省略可)
        req["Content-Type"] = "application/json"
        req["Accept"] = "application/json"

        ## httpsプロトコル接続用のインスタンスを作成
        https = Net::HTTP.new(uri.host, uri.port,proxy_addr, proxy_port, proxy_user, proxy_pass)

        ## 接続
        res = https.start do
          https.request(req)
        end

        ## レスポンスステータスを表示
        puts res.code

        ## レスポンスヘッダを表示
        res.each_header do |name, val|
          puts "#{name}: #{val}"
        end

        ## レスポンスボディを表示
        puts res.body

実行結果

    302
    cache-control: private
    content-type: text/html; charset=UTF-8
    referrer-policy: no-referrer
    location: http://www.google.co.jp/?gfe_rd=cr&ei=VialWaWWDq7z8Af68Ij4BA
    content-length: 261
    date: Tue, 29 Aug 2017 08:31:18 GMT
    proxy-connection: Keep-Alive
    connection: Keep-Alive
    age: 0
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>302 Moved</TITLE></HEAD><BODY>
    <H1>302 Moved</H1>
    The document has moved
    <A HREF="http://www.google.co.jp/?gfe_rd=cr&amp;ei=VialWaWWDq7z8Af68Ij4BA">here</A>.
    </BODY></HTML>