class Hurley::Connection
Public Instance Methods
call(request)
click to toggle source
# File third_party/hurley_patches.rb, line 45 def call(request) net_http_connection(request) do |http| begin Response.new(request) do |res| perform_request(http, request, res) # net/http only raises exception on 407 with ssl...? if res.status_code == 407 raise ConnectionFailed, %Q(407 "Proxy Authentication Required") end end rescue *NET_HTTP_EXCEPTIONS => err if defined?(OpenSSL) && OpenSSL::SSL::SSLError === err raise SSLError, err else raise ConnectionFailed, err end end end rescue ::Timeout::Error => err raise Timeout, err end
Private Instance Methods
net_http_request(request)
click to toggle source
# File third_party/hurley_patches.rb, line 71 def net_http_request(request) http_req = Net::HTTPGenericRequest.new( request.verb.to_s.upcase, # request method !!request.body, # is there a request body :head != request.verb, # is there a response body request.url.request_uri, # request uri path request.header, # request headers ) if body = request.body_io http_req.body_stream = body end http_req end
perform_request(http, request, res)
click to toggle source
# File third_party/hurley_patches.rb, line 87 def perform_request(http, request, res) http.request(net_http_request(request)) do |http_res| res.status_code = http_res.code.to_i http_res.each_header do |key, value| res.header[key] = value end if :get == request.verb http_res.read_body { |chunk| res.receive_body(chunk) } else res.receive_body(http_res.body) end end end