class WebMock::Response

def read_raw_response(io)

def read_raw_response(io)
  socket = ::Net::BufferedIO.new(io)
  response = ::Net::HTTPResponse.read_new(socket)
  transfer_encoding = response.delete('transfer-encoding') #chunks were already read by curl
  response.reading_body(socket, true) {}
  options = {}
  options[:headers] = {}
  response.each_header {|name, value| options[:headers][name] = value}
  options[:headers]['transfer-encoding'] = transfer_encoding if transfer_encoding
  options[:body] = response.read_body
  options[:status] = [response.code.to_i, response.message]
  options
ensure
  socket.close
end