class Net::HTTP
Public Instance Methods
request(req, request_body = nil, &block)
click to toggle source
# File lib/nsa/net_http_tracker.rb, line 69 def request(req, request_body = nil, &block) return orig_request(req, request_body, &block) unless started? protocol = use_ssl? ? "https" : "http" request_headers = Hash[req.each_header.to_a] request_tracker = ::Nsa::NetHttpTracker.new( protocol, @address, @port, req.path, req.method, request_headers, request_body || req.body ) response_body = "" block_provided = block_given? response = orig_request(req, request_body) do |resp| resp.read_body { |str| response_body << str } resp.define_singleton_method(:read_body) do |dest = nil, &block| dest << response_body unless dest.nil? block.call(response_body) unless block.nil? response_body end block.call(resp) if block_provided end request_tracker.set_response_info( response.code, response.message, Hash[response.each_header.to_a] ) request_tracker.response_body = response_body response end
Also aliased as: orig_request