Home

rohit9889 edited this page Jan 25, 2013 · 2 revisions
Clone this wiki locally

http-requestor

A Wrapper around Net/HTTP which allows you to perform HTTP Requests in a simple way.

Installation

gem install http-requestor

Usage

Initialize a domain, and send request to multiple paths

http = HTTP::Requestor.new("http://www.mydomain.com")
# This will initialize the HTTP::Requestor class

get_request    = http.get(path, parameters, headers)
post_request   = http.post(path, parameters, headers)
put_request    = http.put(path, parameters, headers)
delete_request = http.delete(path, parameters, headers)

# path         => for example: "/some_path"
# parameters   => this is an optional parameter, if you want to send some parameters alongwith the request
# headers      => this is also an optional parameter, you can pass a hash with stringified keys

Get a response right away

HTTP::Requestor.request(domain, request_type, path, parameters, headers)
# domain       => for example: "http://www.some_domain.com"
# request_type => GET|POST|PUT|DELETE
# path         => for example: "/some_path"
# parameters   => this is an optional parameter, if you want to send some parameters alongwith the request
# headers      => this is also an optional parameter, you can pass a hash with stringified keys

OR you can do it the other way

HTTP::Requestor.request_with_url(url, request_type, data, headers)
# url          => for example: "http://www.some_domain.com/some_path_value"
# request_type => GET|POST|PUT|DELETE
# parameters   => this is an optional parameter, if you want to send some parameters alongwith the request
# headers      => this is also an optional parameter, you can pass a hash with stringified keys

HTTP Basic Authentication

HTTP::Requestor.send_basic_auth_request(url, username, password)
# url      => for example: "http://www.some_domain.com/some_path_value" only GET URL's supported currently
# username => basic_auth_username
# password => basic_auth_password

Multipart Form Post

uri = "http://some_domain/somepath"
data = {:file => File.open("testfile.txt")}
response = HTTP::Requestor.multipart_request(uri, "post | put", data)

# If you already have the instance of HTTP::Requestor class then you can upload files as follows:

http = HTTP::Requestor.new("http://www.mydomain.com")
response = http.post_multipart(some_path, {:file => File.open("testfile.txt")})
response = http.put_multipart(some_path, {:file => File.open("testfile.txt")})

More HTTP Verbs

You can also use other HTTP Verbs such as OPTIONS, PATCH, MOVE, HEAD, TRACE

* By instantiating the HTTP::Requestor class

  http = HTTP::Requestor.new("http://www.mydomain.com")

  http.options(path, parameters, headers)
  http.patch(path, parameters, headers)
  http.move(path, parameters, headers)
  http.head(path, parameters, headers)
  http.trace(path, parameters, headers)

* Directly calling the request method

  HTTP::Requestor.request(domain, request_type, path, parameters, headers)
  # where request type can be any value within GET, POST, PUT, DELETE, OPTIONS, PATCH, MOVE, HEAD, TRACE

Issues and Suggestions

Please report all the issues in the Github Issues Page, suggestions are also welcome. You can also mail me at rohit0981989[at]gmailcom for the same.