Module: SimpleUri
- Defined in:
- lib/simple_uri.rb,
lib/simple_uri/version.rb
Constant Summary collapse
- VERSION =
"0.0.10"- @@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 28 29 30 |
# 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) if [:user] && [:password] req.basic_auth [:user], [:password] debug_msg 'Basic auth' end [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
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/simple_uri.rb', line 32 def send_request(url=nil, method=:get, ={ params: nil, req_body: nil, req_headers: nil, user: nil, password: nil, debug: @@debug_mode, cookies: false }) get_params = [:req_body] ? '?'+prepare_req_body([:req_body]).to_s : '' [:params] = method==:post ? nil : get_params req, http = connect(url, method, { params: [:params], user: [:user], password: [:password], debug: [:debug] }) req.body = prepare_req_body([:req_body]) if method == :post [: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 |