# File lib/ftw/request.rb, line 73
  def execute(connection)
    tries = 3
    begin
      connection.write(to_s + CRLF)
      if body?
        write_http_body(body, connection,
                        headers["Transfer-Encoding"] == "chunked") 
      end
    rescue => e
      # TODO(sissel): Rescue specific exceptions, not just anything.
      # Reconnect and retry
      if tries > 0
        tries -= 1
        connection.connect
        retry
      else
        raise e
      end
    end

    response = read_http_message(connection)
    # TODO(sissel): make sure we got a response, not a request, cuz that'd be weird.
    return response
  end