Class: Restfolia::HTTP::Request
- Inherits:
-
Object
- Object
- Restfolia::HTTP::Request
- Defined in:
- lib/restfolia/http/request.rb
Overview
Public: Wraps Net::HTTP interface.
Class Method Summary collapse
-
.do_request(method, url, args = {}) ⇒ Object
Public: Do a HTTP Request.
Class Method Details
.do_request(method, url, args = {}) ⇒ Object
Public: Do a HTTP Request.
method - HTTP verb to be used. Options: :get, :post, :put, :delete url - a String to request. (ex: fake.com/service) args - Hash options to build request (default: {}):
:query - String to be set with url (optional).
:body - String to be set with request (optional).
:headers - Hash with headers to be sent in request (optional).
Returns an instance of Net::HTTPResponse.
Raises URI::InvalidURIError if url attribute is invalid.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/restfolia/http/request.rb', line 18 def self.do_request(method, url, args = {}) query = args[:query] body = args[:body] uri = URI.parse(url) uri.query = query if query http = Net::HTTP.new(uri.host, uri.port) verb = case method when :get Net::HTTP::Get.new(uri.request_uri) when :post Net::HTTP::Post.new(uri.request_uri) when :put Net::HTTP::Put.new(uri.request_uri) when :delete Net::HTTP::Delete.new(uri.request_uri) else msg = "Method have to be one of: :get, post, :put, :delete" raise ArgumentError, msg end verb.body = body if body if (headers = args[:headers]) headers.each do |header, value| verb[header] = value end end if ( = args[:cookies]) verb["Cookie"] = end http.request(verb) end |