Module: SimpleUri
- Defined in:
- lib/simple_uri.rb,
lib/simple_uri/version.rb
Constant Summary collapse
- VERSION =
"0.0.6"- @@debug_mode =
false
Class Method Summary collapse
- .connect(url = '', method = nil, options = { params: nil, user: nil, password: nil, debug: @@debug_mode }) ⇒ Object
- .send_request(url = nil, method = :get, options = { params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false }) ⇒ Object (also: req)
Class Method Details
.connect(url = '', method = nil, options = { params: nil, user: nil, password: nil, debug: @@debug_mode }) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/simple_uri.rb', line 13 def connect(url='', method=nil, ={ params: nil, user: nil, password: nil, debug: @@debug_mode }) enable_debug_mode([:debug]) uri = URI.parse(URI.encode(prepare_url(url))) http = Net::HTTP.new(uri.host, uri.port) http.read_timeout = 1000 debug_http(http) if url.match(/^https/) debug_msg 'Use SSL' http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE end req = "Net::HTTP::#{method.to_s.capitalize}".constantize.new(uri.path+[:params].to_s) req.basic_auth [:user], [:password] if [:user] && [:password] [req, http] end |
.send_request(url = nil, method = :get, options = { params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false }) ⇒ Object Also known as: req
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/simple_uri.rb', line 29 def send_request(url=nil, method=:get, ={ params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false }) req, http = connect(url, method, { params: [:params], user: [:user], password: [:password], debug: [:debug] }) req.body = prepare_req_body([:req_body]) [:req_headers].each { |k, v| req[k] = v } if [:req_headers] res = http.request(req) res.body res_body = begin JSON.parse(res.body) rescue debug_msg 'Can\'t convert response to JSON' res.body end [:cookies] ? { body: res_body, cookies: res.response['set-cookie'] } : res_body end |