* @copyright Michael Wallner, <mike@iworks.at>
* @license BSD, revised
* @package pecl/http
- * @version $Revision$
+ * @version $Revision$
*/
class XmlRpcClient
{
*/
public $__encoding = "iso-8859-1";
+ /**
+ * RPC options
+ *
+ * @var array
+ */
+ public $__options;
+
/**
* Constructor
*
*/
public function __construct($url, $namespace = '', array $options = null)
{
- $this->__request = new HttpRequest($url, HTTP_METH_POST);
- $this->__request->setOptions($options);
+ $this->__request = new HttpRequest($url, HttpRequest::METH_POST, (array) $options);
$this->__namespace = $namespace;
}
*/
public function __call($method, array $params)
{
- if ($this->__namespace) {
+ if (strlen($this->__namespace)) {
$method = $this->__namespace .'.'. $method;
}
- $this->__request->setContentType("text/xml; charset=". $this->__encoding);
- $request = xmlrpc_encode_request($method, $params, array("encoding" => $this->__encoding));
- $this->__request->setRawPostData($request);
- $this->__request->send();
- $response = $this->__request->getResponseMessage();
+ $this->__request->setContentType("text/xml");
+ $this->__request->setRawPostData(
+ xmlrpc_encode_request($method, $params,
+ array("encoding" => $this->__encoding) + (array) $this->__options));
+ $response = $this->__request->send();
if ($response->getResponseCode() != 200) {
throw new Exception(
$response->getResponseStatus(),