1. KuwaK

    Posted

    KuwaK
Changes in title
+Rubyでプロキシ経由でWebAPIを使うときのメモ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,67 @@
+RubyでWebAPIを使うにあたって
+
+* プロキシ経由でどうやって接続するの?
+* httpsは?
+* POSTは?
+* レスポンスヘッダやステータスコードもみたいんだけど・・・
+
+みたいなことがよくわからなかったのでメモ。
+
+``` .ruby
+require 'net/https'
+require 'uri'
+
+## プロキシの設定
+proxy_addr = 'hogehoge.com'
+proxy_port = 8080
+proxy_user = 'user_name'
+proxy_pass = 'user_password'
+
+
+
+## 接続先URLを指定してパース
+URL = "http://hogehoge/fuga"
+uri = URI.parse(URL)
+
+
+## リクエストのヘッダーとボディを設定する。POSTメソッドを指定
+req = Net::HTTP::Post.new(uri.path)
+
+# リクエストヘッダの指定(指定しない場合は省略可)
+req["Content-Type"] = "application/json"
+req["Accept"] = "application/json"
+
+# ボディとなるjsonファイルの読み込み(指定しない場合は省略可)
+file = File.read("token_req.json")
+
+# リクエストボディを挿入(指定しない場合は省略可)
+req.body = file
+
+# 今回はjson形式のテキストファイルを直接挿入しているけど、
+# Rubyのハッシュをセットしたい場合には
+# req.set_form_data({'name' => 'hoge', 'content' => 'hogehoge'})
+# みたいな感じでも書けるらしい
+
+
+## httpsプロトコル接続用のインスタンスを作成
+https = Net::HTTP.new(uri.host, uri.port,proxy_addr, proxy_port, proxy_user, proxy_pass)
+https.use_ssl = true # HTTPSで接続(https使わないなら省略可)
+https.verify_mode = OpenSSL::SSL::VERIFY_NONE #証明書チェックを無効化(https使わないなら省略可)
+
+
+## 接続を開始
+res = https.start do
+ https.request(req)
+end
+
+## レスポンスステータスを表示
+puts res.code
+
+## レスポンスヘッダを表示
+res.each_header do |name, val|
+ puts "#{name}: #{val}"
+end
+
+## レスポンスボディを表示
+puts res.body
+```