class HTTParty::Request
def perform(&block)
def perform(&block) validate setup_raw_request chunked_body = nil current_http = http begin self.last_response = current_http.request(@raw_request) do |http_response| if block chunks = [] http_response.read_body do |fragment| encoded_fragment = encode_text(fragment, http_response['content-type']) chunks << encoded_fragment if !options[:stream_body] block.call ResponseFragment.new(encoded_fragment, http_response, current_http) end chunked_body = chunks.join end end handle_host_redirection if response_redirects? result = handle_unauthorized result ||= handle_response(chunked_body, &block) result rescue *COMMON_NETWORK_ERRORS => e raise options[:foul] ? HTTParty::NetworkError.new("#{e.class}: #{e.message}") : e end end