def perform
      validate!

      party_options = options.dup

      # merge proxy
      if proxy = self.proxy
        addr, port = proxy.split(':')
        party_options[:http_proxyaddr] = addr
        party_options[:http_proxyport] = port || 80
      end

      # now merge runtime_options
      party_options = party_options.merge(sinew.runtime_options.httparty_options)

      # merge headers
      headers = sinew.runtime_options.headers
      headers = headers.merge(party_options[:headers]) if party_options[:headers]
      party_options[:headers] = headers

      party_response = HTTParty.send(method, uri, party_options)
      Response.from_network(self, party_response)
    end
def perform
      validate!

      party_options = options.dup

      # merge proxy
      if proxy = self.proxy
        addr, port = proxy.split(':')
        party_options[:http_proxyaddr] = addr
        party_options[:http_proxyport] = port || 80
      end

      # now merge runtime_options
      party_options = party_options.merge(sinew.runtime_options.httparty_options)

      # merge headers
      headers = sinew.runtime_options.headers
      headers = headers.merge(party_options[:headers]) if party_options[:headers]
      party_options[:headers] = headers

      party_response = HTTParty.send(method, uri, party_options)
      Response.from_network(self, party_response)
    end
run the request, return the result