xmlrpc_client Class Reference

List of all members.

Public Member Functions

 xmlrpc_client ($path, $server='', $port='', $method='')
 setDebug ($in)
 setCredentials ($u, $p, $t=1)
 setCertificate ($cert, $certpass)
 setCaCertificate ($cacert, $is_dir=false)
 setKey ($key, $keypass)
 setSSLVerifyPeer ($i)
 setSSLVerifyHost ($i)
 setProxy ($proxyhost, $proxyport, $proxyusername= '', $proxypassword= '', $proxyauthtype=1)
 setAcceptedCompression ($compmethod)
 setRequestCompression ($compmethod)
 setCookie ($name, $value='', $path='', $domain='', $port=null)
send ($msg, $timeout=0, $method='')
sendPayloadHTTP10 ($msg, $server, $port, $timeout=0, $username='', $password='', $authtype=1, $proxyhost='', $proxyport=0, $proxyusername='', $proxypassword='', $proxyauthtype=1)
sendPayloadHTTPS ($msg, $server, $port, $timeout=0, $username='', $password='', $authtype=1, $cert='', $certpass='', $cacert='', $cacertdir='', $proxyhost='', $proxyport=0, $proxyusername='', $proxypassword='', $proxyauthtype=1, $keepalive=false, $key='', $keypass='')
sendPayloadCURL ($msg, $server, $port, $timeout=0, $username='', $password='', $authtype=1, $cert='', $certpass='', $cacert='', $cacertdir='', $proxyhost='', $proxyport=0, $proxyusername='', $proxypassword='', $proxyauthtype=1, $method='https', $keepalive=false, $key='', $keypass='')
 multicall ($msgs, $timeout=0, $method='', $fallback=true)
 _try_multicall ($msgs, $timeout, $method)

Public Attributes

 $path
 $server
 $port = 0
 $method = 'http'
 $errno
 $errstr
 $debug = 0
 $username = ''
 $password = ''
 $authtype = 1
 $cert = ''
 $certpass = ''
 $cacert = ''
 $cacertdir = ''
 $key = ''
 $keypass = ''
 $verifypeer = true
 $verifyhost = 1
 $no_multicall = false
 $proxy = ''
 $proxyport = 0
 $proxy_user = ''
 $proxy_pass = ''
 $proxy_authtype = 1
 $cookies = array()
 $accepted_compression = array()
 $request_compression = ''
 $xmlrpc_curl_handle = null
 $keepalive = false
 Wheter to use persistent connections for http 1.1 and https.
 $accepted_charset_encodings = array()
 Charset encodings that can be decoded without problems by the client.
 $request_charset_encoding = ''
 Charset encoding to be used in serializing request. NULL = use ASCII.
 $return_type = 'xmlrpcvals'


Detailed Description

Definition at line 795 of file xmlrpc.inc.php.


Member Function Documentation

xmlrpc_client::xmlrpc_client ( path,
server = '',
port = '',
method = '' 
)

Parameters:
string $path either the complete server URL or the PATH part of the xmlrc server URL, e.g. /xmlrpc/server.php
string $server the server name / ip address
integer $port the port the server is listening on, defaults to 80 or 443 depending on protocol used
string $method the http protocol variant: defaults to 'http', 'https' and 'http11' can be used if CURL is installed

Definition at line 860 of file xmlrpc.inc.php.

References $method, $path, $port, and $server.

xmlrpc_client::setDebug ( in  ) 

Enables/disables the echoing to screen of the xmlrpc responses received

Parameters:
integer $debug values 0, 1 and 2 are supported (2 = echo sent msg too, before received response) public

Definition at line 936 of file xmlrpc.inc.php.

References debug().

xmlrpc_client::setCredentials ( u,
p,
t = 1 
)

Add some http BASIC AUTH credentials, used by the client to authenticate

Parameters:
string $u username
string $p password
integer $t auth type. See curl_setopt man page for supported auth types. Defaults to CURLAUTH_BASIC (basic auth) public

Definition at line 948 of file xmlrpc.inc.php.

xmlrpc_client::setCertificate ( cert,
certpass 
)

Add a client-side https certificate

Parameters:
string $cert
string $certpass public

Definition at line 961 of file xmlrpc.inc.php.

References $cert, and $certpass.

xmlrpc_client::setCaCertificate ( cacert,
is_dir = false 
)

Add a CA certificate to verify server with (see man page about CURLOPT_CAINFO for more details

Parameters:
string $cacert certificate file name (or dir holding certificates)
bool $is_dir set to true to indicate cacert is a dir. defaults to false public

Definition at line 974 of file xmlrpc.inc.php.

References $cacert.

xmlrpc_client::setKey ( key,
keypass 
)

Set attributes for SSL communication: private SSL key

Parameters:
string $key The name of a file containing a private SSL key
string $keypass The secret password needed to use the private SSL key public NB: does not work in older php/curl installs Thanks to Daniel Convissor

Definition at line 994 of file xmlrpc.inc.php.

References $key, and $keypass.

xmlrpc_client::setSSLVerifyPeer ( i  ) 

Set attributes for SSL communication: verify server certificate

Parameters:
bool $i enable/disable verification of peer certificate public

Definition at line 1005 of file xmlrpc.inc.php.

xmlrpc_client::setSSLVerifyHost ( i  ) 

Set attributes for SSL communication: verify match of server cert w. hostname

Parameters:
int $i public

Definition at line 1015 of file xmlrpc.inc.php.

xmlrpc_client::setProxy ( proxyhost,
proxyport,
proxyusername = '',
proxypassword = '',
proxyauthtype = 1 
)

Set proxy info

Parameters:
string $proxyhost
string $proxyport Defaults to 8080 for HTTP and 443 for HTTPS
string $proxyusername Leave blank if proxy has public access
string $proxypassword Leave blank if proxy has public access
int $proxyauthtype set to constant CURLAUTH_NTLM to use NTLM auth with proxy public

Definition at line 1029 of file xmlrpc.inc.php.

References $proxyport.

xmlrpc_client::setAcceptedCompression ( compmethod  ) 

Enables/disables reception of compressed xmlrpc responses. Note that enabling reception of compressed responses merely adds some standard http headers to xmlrpc requests. It is up to the xmlrpc server to return compressed responses when receiving such requests.

Parameters:
string $compmethod either 'gzip', 'deflate', 'any' or '' public

Definition at line 1046 of file xmlrpc.inc.php.

xmlrpc_client::setRequestCompression ( compmethod  ) 

Enables/disables http compression of xmlrpc request. Take care when sending compressed requests: servers might not support them (and automatic fallback to uncompressed requests is not yet implemented)

Parameters:
string $compmethod either 'gzip', 'deflate' or '' public

Definition at line 1061 of file xmlrpc.inc.php.

xmlrpc_client::setCookie ( name,
value = '',
path = '',
domain = '',
port = null 
)

Adds a cookie to list of cookies that will be sent to server. NB: setting any param but name and value will turn the cookie into a 'version 1' cookie: do not do it unless you know what you are doing

Parameters:
string $name
string $value
string $path
string $domain
int $port public
Todo:
check correctness of urlencoding cookie value (copied from php way of doing it...)

Definition at line 1079 of file xmlrpc.inc.php.

References $path, and $port.

& xmlrpc_client::send ( msg,
timeout = 0,
method = '' 
)

Send an xmlrpc request

Parameters:
mixed $msg The message object, or an array of messages for using multicall, or the complete xml representation of a request
integer $timeout Connection timeout, in seconds, If unspecified, a platform specific timeout will apply
string $method if left unspecified, the http protocol chosen during creation of the object will be used
Returns:
xmlrpcresp public

Definition at line 1103 of file xmlrpc.inc.php.

References $method, $msg, debug(), multicall(), sendPayloadCURL(), sendPayloadHTTP10(), and sendPayloadHTTPS().

Referenced by _try_multicall(), and multicall().

& xmlrpc_client::sendPayloadHTTP10 ( msg,
server,
port,
timeout = 0,
username = '',
password = '',
authtype = 1,
proxyhost = '',
proxyport = 0,
proxyusername = '',
proxypassword = '',
proxyauthtype = 1 
)

private

Definition at line 1199 of file xmlrpc.inc.php.

References $a, $authtype, $GLOBALS, $msg, $password, $port, $proxyport, $server, $username, and debug().

Referenced by send().

& xmlrpc_client::sendPayloadHTTPS ( msg,
server,
port,
timeout = 0,
username = '',
password = '',
authtype = 1,
cert = '',
certpass = '',
cacert = '',
cacertdir = '',
proxyhost = '',
proxyport = 0,
proxyusername = '',
proxypassword = '',
proxyauthtype = 1,
keepalive = false,
key = '',
keypass = '' 
)

private

Definition at line 1379 of file xmlrpc.inc.php.

References $authtype, $cacert, $cacertdir, $cert, $certpass, $keepalive, $key, $keypass, $msg, $password, $port, $proxyport, $server, $username, and sendPayloadCURL().

Referenced by send().

& xmlrpc_client::sendPayloadCURL ( msg,
server,
port,
timeout = 0,
username = '',
password = '',
authtype = 1,
cert = '',
certpass = '',
cacert = '',
cacertdir = '',
proxyhost = '',
proxyport = 0,
proxyusername = '',
proxypassword = '',
proxyauthtype = 1,
method = 'https',
keepalive = false,
key = '',
keypass = '' 
)

Contributed by Justin Miller <justin@voxel.net> Requires curl to be built into PHP NB: CURL versions before 7.11.10 cannot use proxy to talk to https servers! private

Definition at line 1396 of file xmlrpc.inc.php.

References $a, $authtype, $cacert, $cacertdir, $cert, $certpass, $GLOBALS, $keepalive, $key, $keypass, $method, $msg, $password, $port, $proxyport, $server, $username, and debug().

Referenced by send(), and sendPayloadHTTPS().

xmlrpc_client::multicall ( msgs,
timeout = 0,
method = '',
fallback = true 
)

Send an array of request messages and return an array of responses. Unless $this->no_multicall has been set to true, it will try first to use one single xmlrpc call to server method system.multicall, and revert to sending many successive calls in case of failure. This failure is also stored in $this->no_multicall for subsequent calls. Unfortunately, there is no server error code universally used to denote the fact that multicall is unsupported, so there is no way to reliably distinguish between that and a temporary failure. If you are sure that server supports multicall and do not want to fallback to using many single calls, set the fourth parameter to FALSE.

NB: trying to shoehorn extra functionality into existing syntax has resulted in pretty much convoluted code...

Parameters:
array $msgs an array of xmlrpcmsg objects
integer $timeout connection timeout (in seconds)
string $method the http protocol variant to be used
boolean fallback When true, upon receiveing an error during multicall, multiple single calls will be attempted
Returns:
array public

Definition at line 1665 of file xmlrpc.inc.php.

References $GLOBALS, $method, $msg, _try_multicall(), and send().

Referenced by send().

xmlrpc_client::_try_multicall ( msgs,
timeout,
method 
)

Attempt to boxcar $msgs via system.multicall. Returns either an array of xmlrpcreponses, an xmlrpc error response or false (when received response does not respect valid multicall syntax) private

Todo:
test this code branch...

Todo:
remove usage of @: it is apparently quite slow

Definition at line 1737 of file xmlrpc.inc.php.

References $method, $msg, and send().

Referenced by multicall().


Member Data Documentation

xmlrpc_client::$path

Definition at line 797 of file xmlrpc.inc.php.

Referenced by setCookie(), and xmlrpc_client().

xmlrpc_client::$server

xmlrpc_client::$port = 0

xmlrpc_client::$method = 'http'

Definition at line 800 of file xmlrpc.inc.php.

Referenced by _try_multicall(), multicall(), send(), sendPayloadCURL(), and xmlrpc_client().

xmlrpc_client::$errno

Definition at line 801 of file xmlrpc.inc.php.

xmlrpc_client::$errstr

Definition at line 802 of file xmlrpc.inc.php.

xmlrpc_client::$debug = 0

Definition at line 803 of file xmlrpc.inc.php.

xmlrpc_client::$username = ''

Definition at line 804 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTP10(), and sendPayloadHTTPS().

xmlrpc_client::$password = ''

Definition at line 805 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTP10(), and sendPayloadHTTPS().

xmlrpc_client::$authtype = 1

Definition at line 806 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTP10(), and sendPayloadHTTPS().

xmlrpc_client::$cert = ''

Definition at line 807 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTPS(), and setCertificate().

xmlrpc_client::$certpass = ''

Definition at line 808 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTPS(), and setCertificate().

xmlrpc_client::$cacert = ''

Definition at line 809 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTPS(), and setCaCertificate().

xmlrpc_client::$cacertdir = ''

Definition at line 810 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), and sendPayloadHTTPS().

xmlrpc_client::$key = ''

Definition at line 811 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTPS(), and setKey().

xmlrpc_client::$keypass = ''

Definition at line 812 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTPS(), and setKey().

xmlrpc_client::$verifypeer = true

Definition at line 813 of file xmlrpc.inc.php.

xmlrpc_client::$verifyhost = 1

Definition at line 814 of file xmlrpc.inc.php.

xmlrpc_client::$no_multicall = false

Definition at line 815 of file xmlrpc.inc.php.

xmlrpc_client::$proxy = ''

Definition at line 816 of file xmlrpc.inc.php.

xmlrpc_client::$proxyport = 0

Definition at line 817 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), sendPayloadHTTP10(), sendPayloadHTTPS(), and setProxy().

xmlrpc_client::$proxy_user = ''

Definition at line 818 of file xmlrpc.inc.php.

xmlrpc_client::$proxy_pass = ''

Definition at line 819 of file xmlrpc.inc.php.

xmlrpc_client::$proxy_authtype = 1

Definition at line 820 of file xmlrpc.inc.php.

xmlrpc_client::$cookies = array()

Definition at line 821 of file xmlrpc.inc.php.

xmlrpc_client::$accepted_compression = array()

List of http compression methods accepted by the client for responses. NB: PHP supports deflate, gzip compressions out of the box if compiled w. zlib

NNB: you can set it to any non-empty array for HTTP11 and HTTPS, since in those cases it will be up to CURL to decide the compression methods it supports. You might check for the presence of 'zlib' in the output of curl_version() to determine wheter compression is supported or not

Definition at line 831 of file xmlrpc.inc.php.

xmlrpc_client::$request_compression = ''

Name of compression scheme to be used for sending requests. Either null, gzip or deflate

Definition at line 836 of file xmlrpc.inc.php.

xmlrpc_client::$xmlrpc_curl_handle = null

CURL handle: used for keep-alive connections (PHP 4.3.8 up, see: http://curl.haxx.se/docs/faq.html#7.3)

Definition at line 841 of file xmlrpc.inc.php.

xmlrpc_client::$keepalive = false

Wheter to use persistent connections for http 1.1 and https.

Definition at line 843 of file xmlrpc.inc.php.

Referenced by sendPayloadCURL(), and sendPayloadHTTPS().

xmlrpc_client::$accepted_charset_encodings = array()

Charset encodings that can be decoded without problems by the client.

Definition at line 845 of file xmlrpc.inc.php.

xmlrpc_client::$request_charset_encoding = ''

Charset encoding to be used in serializing request. NULL = use ASCII.

Definition at line 847 of file xmlrpc.inc.php.

xmlrpc_client::$return_type = 'xmlrpcvals'

Decides the content of xmlrpcresp objects returned by calls to send() valid strings are 'xmlrpcvals', 'phpvals' or 'xml'

Definition at line 852 of file xmlrpc.inc.php.


The documentation for this class was generated from the following file:



Generated on Wed Jun 25 17:26:03 2008 by  doxygen 1.5.5