LoginSignup
2
1

More than 5 years have passed since last update.

Rubyでプロキシ経由でWebAPIを使うときのメモ

Posted at

RubyでWebAPIを使うにあたって

  • プロキシ経由でどうやって接続するの?
  • httpsは?
  • POSTは?
  • レスポンスヘッダやステータスコードもみたいんだけど・・・

みたいなことがよくわからなかったのでメモ。

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
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1