Module: HTTPI
- Defined in:
- lib/httpi.rb,
lib/httpi/dime.rb,
lib/httpi/cookie.rb,
lib/httpi/adapter.rb,
lib/httpi/request.rb,
lib/httpi/version.rb,
lib/httpi/auth/ssl.rb,
lib/httpi/response.rb,
lib/httpi/auth/config.rb,
lib/httpi/adapter/base.rb,
lib/httpi/adapter/curb.rb,
lib/httpi/adapter/rack.rb,
lib/httpi/cookie_store.rb,
lib/httpi/adapter/excon.rb,
lib/httpi/adapter/em_http.rb,
lib/httpi/adapter/net_http.rb,
lib/httpi/adapter/httpclient.rb,
lib/httpi/adapter/net_http_persistent.rb
Overview
HTTPI
Executes HTTP requests using a predefined adapter. All request methods accept an HTTPI::Request
and an optional adapter. They may also offer shortcut methods for executing basic requests. Also they all return an HTTPI::Response
.
GET
request = HTTPI::Request.new("http://example.com")
HTTPI.get(request, :httpclient)
Shortcuts
HTTPI.get("http://example.com", :curb)
POST
request = HTTPI::Request.new
request.url = "http://example.com"
request.body = "<some>xml</some>"
HTTPI.post(request, :httpclient)
Shortcuts
HTTPI.post("http://example.com", "<some>xml</some>", :curb)
HEAD
request = HTTPI::Request.new("http://example.com")
HTTPI.head(request, :httpclient)
Shortcuts
HTTPI.head("http://example.com", :curb)
PUT
request = HTTPI::Request.new
request.url = "http://example.com"
request.body = "<some>xml</some>"
HTTPI.put(request, :httpclient)
Shortcuts
HTTPI.put("http://example.com", "<some>xml</some>", :curb)
DELETE
request = HTTPI::Request.new("http://example.com")
HTTPI.delete(request, :httpclient)
Shortcuts
HTTPI.delete("http://example.com", :curb)
More control
If you need more control over your request, you can access the HTTP client instance represented by your adapter in a block.
HTTPI.get request do |http|
http.follow_redirect_count = 3 # HTTPClient example
end
Defined Under Namespace
Modules: Adapter, Auth, ConnectionError Classes: Cookie, CookieStore, Dime, DimeRecord, Error, NotImplementedError, NotSupportedError, Request, Response, SSLError, TimeoutError
Constant Summary collapse
- REQUEST_METHODS =
[:get, :post, :head, :put, :delete]
- DEFAULT_LOG_LEVEL =
:debug
- VERSION =
"2.1.0"
Class Attribute Summary collapse
-
.log(message) ⇒ Object
Logs a given
message
. -
.log_level ⇒ Object
Returns the log level.
-
.logger ⇒ Object
Returns the logger.
Class Method Summary collapse
-
.adapter=(adapter) ⇒ Object
Shortcut for setting the default adapter to use.
-
.delete(request, adapter = nil, &block) ⇒ Object
Executes an HTTP DELETE request.
-
.get(request, adapter = nil, &block) ⇒ Object
Executes an HTTP GET request.
-
.head(request, adapter = nil, &block) ⇒ Object
Executes an HTTP HEAD request.
-
.log? ⇒ Boolean
Returns whether to log HTTP requests.
-
.post(*args, &block) ⇒ Object
Executes an HTTP POST request.
-
.put(*args, &block) ⇒ Object
Executes an HTTP PUT request.
-
.request(method, request, adapter = nil) {|adapter_class.client| ... } ⇒ Object
Executes an HTTP request for the given
method
. -
.reset_config! ⇒ Object
Reset the default config.
Class Attribute Details
.log(message) ⇒ Object
Logs a given message
.
173 174 175 |
# File 'lib/httpi.rb', line 173 def log() logger.send(log_level, ) if log? end |
.log_level ⇒ Object
Returns the log level. Defaults to :debug.
168 169 170 |
# File 'lib/httpi.rb', line 168 def log_level @log_level ||= DEFAULT_LOG_LEVEL end |
.logger ⇒ Object
Returns the logger. Defaults to an instance of Logger
writing to STDOUT.
160 161 162 |
# File 'lib/httpi.rb', line 160 def logger @logger ||= ::Logger.new($stdout) end |
Class Method Details
.adapter=(adapter) ⇒ Object
Shortcut for setting the default adapter to use.
144 145 146 |
# File 'lib/httpi.rb', line 144 def adapter=(adapter) Adapter.use = adapter end |
.delete(request, adapter = nil, &block) ⇒ Object
Executes an HTTP DELETE request.
128 129 130 131 |
# File 'lib/httpi.rb', line 128 def delete(request, adapter = nil, &block) request = Request.new(request) if request.kind_of? String request(:delete, request, adapter, &block) end |
.get(request, adapter = nil, &block) ⇒ Object
Executes an HTTP GET request.
104 105 106 107 |
# File 'lib/httpi.rb', line 104 def get(request, adapter = nil, &block) request = Request.new(request) if request.kind_of? String request(:get, request, adapter, &block) end |
.head(request, adapter = nil, &block) ⇒ Object
Executes an HTTP HEAD request.
116 117 118 119 |
# File 'lib/httpi.rb', line 116 def head(request, adapter = nil, &block) request = Request.new(request) if request.kind_of? String request(:head, request, adapter, &block) end |
.log? ⇒ Boolean
Returns whether to log HTTP requests. Defaults to true
.
152 153 154 |
# File 'lib/httpi.rb', line 152 def log? @log != false end |
.post(*args, &block) ⇒ Object
Executes an HTTP POST request.
110 111 112 113 |
# File 'lib/httpi.rb', line 110 def post(*args, &block) request, adapter = request_and_adapter_from(args) request(:post, request, adapter, &block) end |
.put(*args, &block) ⇒ Object
Executes an HTTP PUT request.
122 123 124 125 |
# File 'lib/httpi.rb', line 122 def put(*args, &block) request, adapter = request_and_adapter_from(args) request(:put, request, adapter, &block) end |
.request(method, request, adapter = nil) {|adapter_class.client| ... } ⇒ Object
Executes an HTTP request for the given method
.
134 135 136 137 138 139 140 141 |
# File 'lib/httpi.rb', line 134 def request(method, request, adapter = nil) adapter_class = load_adapter(adapter, request) yield adapter_class.client if block_given? log_request(method, request, Adapter.identify(adapter_class.class)) adapter_class.request(method) end |
.reset_config! ⇒ Object
Reset the default config.
178 179 180 181 182 |
# File 'lib/httpi.rb', line 178 def reset_config! @log = nil @logger = nil @log_level = nil end |