![show/hide quicksearch [+]](../images/find.png)
Constructors ——————————————————————-
 
               # File xmlrpc/client.rb, line 295
def initialize(host=nil, path=nil, port=nil, proxy_host=nil, proxy_port=nil, 
               user=nil, password=nil, use_ssl=nil, timeout=nil)
  @http_header_extra = nil
  @http_last_response = nil 
  @cookie = nil
  @host       = host || "localhost"
  @path       = path || "/RPC2"
  @proxy_host = proxy_host
  @proxy_port = proxy_port
  @proxy_host ||= 'localhost' if @proxy_port != nil
  @proxy_port ||= 8080 if @proxy_host != nil
  @use_ssl    = use_ssl || false
  @timeout    = timeout || 30
  if use_ssl
    require "net/https"
    @port = port || 443
  else
    @port = port || 80
  end
  @user, @password = user, password
  set_auth
  # convert ports to integers
  @port = @port.to_i if @port != nil
  @proxy_port = @proxy_port.to_i if @proxy_port != nil
  # HTTP object for synchronous calls
  Net::HTTP.version_1_2
  @http = Net::HTTP.new(@host, @port, @proxy_host, @proxy_port) 
  @http.use_ssl = @use_ssl if @use_ssl
  @http.read_timeout = @timeout
  @http.open_timeout = @timeout
  @parser = nil
  @create = nil
end
             
            Call methods ————————————————————–
 
               # File xmlrpc/client.rb, line 409
def call(method, *args)
  ok, param = call2(method, *args) 
  if ok
    param
  else
    raise param
  end
end
             
             
               # File xmlrpc/client.rb, line 418
def call2(method, *args)
  request = create().methodCall(method, *args)
  data = do_rpc(request, false)
  parser().parseMethodResponse(data)
end
             
             
               # File xmlrpc/client.rb, line 433
def call2_async(method, *args)
  request = create().methodCall(method, *args)
  data = do_rpc(request, true)
  parser().parseMethodResponse(data)
end
             
             
               # File xmlrpc/client.rb, line 424
def call_async(method, *args)
  ok, param = call2_async(method, *args) 
  if ok
    param
  else
    raise param
  end
end
             
            Multicall methods ————————————————————–
 
               # File xmlrpc/client.rb, line 442
def multicall(*methods)
  ok, params = multicall2(*methods)
  if ok
    params
  else
    raise params
  end
end
             
             
               # File xmlrpc/client.rb, line 451
def multicall2(*methods)
  gen_multicall(methods, false)
end
             
             
               # File xmlrpc/client.rb, line 464
def multicall2_async(*methods)
  gen_multicall(methods, true)
end
             
             
               # File xmlrpc/client.rb, line 455
def multicall_async(*methods)
  ok, params = multicall2_async(*methods)
  if ok
    params
  else
    raise params
  end
end
             
             
               # File xmlrpc/client.rb, line 340
def new2(uri, proxy=nil, timeout=nil)
  if match = /^([^:]+):\/\/(([^@]+)@)?([^\/]+)(\/.*)?$/.match(uri)
    proto = match[1]
    user, passwd = (match[3] || "").split(":")
    host, port = match[4].split(":") 
    path = match[5]
    if proto != "http" and proto != "https"
      raise "Wrong protocol specified. Only http or https allowed!"
    end
  else
    raise "Wrong URI as parameter!"
  end
 
  proxy_host, proxy_port = (proxy || "").split(":")
  self.new(host, path, port, proxy_host, proxy_port, user, passwd, (proto == "https"), timeout)
end
             
             
               # File xmlrpc/client.rb, line 362
def new3(hash={})
  # convert all keys into lowercase strings
  h = {}
  hash.each { |k,v| h[k.to_s.downcase] = v }
  self.new(h['host'], h['path'], h['port'], h['proxy_host'], h['proxy_port'], h['user'], h['password'],
           h['use_ssl'], h['timeout'])
end
             
             
               # File xmlrpc/client.rb, line 402
def password=(new_password)
  @password = new_password
  set_auth
end
             
            Proxy generating methods ------------------------------------------
 
               # File xmlrpc/client.rb, line 471
def proxy(prefix=nil, *args)
  Proxy.new(self, prefix, args, :call)
end
             
             
               # File xmlrpc/client.rb, line 475
def proxy2(prefix=nil, *args)
  Proxy.new(self, prefix, args, :call2)
end
             
             
               # File xmlrpc/client.rb, line 483
def proxy2_async(prefix=nil, *args)
  Proxy.new(self, prefix, args, :call2_async)
end
             
             
               # File xmlrpc/client.rb, line 479
def proxy_async(prefix=nil, *args)
  Proxy.new(self, prefix, args, :call_async)
end
             
            Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.