/** * __toString() test */ public function test__toString() { $argv = array('string', true); $this->_request->setMethod('do.Something'); $this->_request->setParams($argv); $xml = $this->_request->__toString(); try { $sx = new SimpleXMLElement($xml); } catch (Exception $e) { $this->fail('Invalid XML returned'); } $result = $sx->xpath('//methodName'); $count = 0; while (list(, $node) = each($result)) { ++$count; } $this->assertEquals(1, $count, $xml); $result = $sx->xpath('//params'); $count = 0; while (list(, $node) = each($result)) { ++$count; } $this->assertEquals(1, $count, $xml); try { $methodName = (string) $sx->methodName; $params = array((string) $sx->params->param[0]->value->string, (bool) $sx->params->param[1]->value->boolean); } catch (Exception $e) { $this->fail('One or more inconsistencies parsing generated XML: ' . $e->getMessage()); } $this->assertEquals('do.Something', $methodName); $this->assertSame($argv, $params, $xml); }
/** * __toString() test */ public function test__toString() { $argv = array('string', true); $this->_request->setMethod('do.Something'); $this->_request->setParams($argv); $xml = $this->_request->__toString(); $this->_testXmlRequest($xml, $argv); }
/** * Perform an XML-RPC request and return a response. * * @param Zend_XmlRpc_Request $request * @param null|Zend_XmlRpc_Response $response * @return void */ public function doRequest($request, $response = null) { $this->_lastRequest = $request; iconv_set_encoding('input_encoding', 'UTF-8'); iconv_set_encoding('output_encoding', 'UTF-8'); iconv_set_encoding('internal_encoding', 'UTF-8'); $http = $this->getHttpClient(); $http->setUri($this->_serverAddress); $http->setHeaders(array('Content-Type: text/xml; charset=utf-8', 'User-Agent: Zend_XmlRpc_Client')); $xml = $this->_lastRequest->__toString(); $http->setRawData($xml); $httpResponse = $http->request(Zend_Http_Client::POST); if (!$httpResponse->isSuccessful()) { throw new Zend_XmlRpc_Client_HttpException($httpResponse->getMessage(), $httpResponse->getStatus()); } if ($response === null) { $response = new Zend_XmlRpc_Response(); } $this->_lastResponse = $response; $this->_lastResponse->loadXml($httpResponse->getBody()); }
/** * Perform an XML-RPC request and return a response. * * @param Zend_XmlRpc_Request $request * @param null|Zend_XmlRpc_Response $response * @return void * @throws Zend_XmlRpc_Client_HttpException */ public function doRequest($request, $response = null) { $this->_lastRequest = $request; if (PHP_VERSION_ID < 50600) { iconv_set_encoding('input_encoding', 'UTF-8'); iconv_set_encoding('output_encoding', 'UTF-8'); iconv_set_encoding('internal_encoding', 'UTF-8'); } else { ini_set('input_encoding', 'UTF-8'); ini_set('output_encoding', 'UTF-8'); ini_set('default_charset', 'UTF-8'); } $http = $this->getHttpClient(); if ($http->getUri() === null) { $http->setUri($this->_serverAddress); } $http->setHeaders(array('Content-Type: text/xml; charset=utf-8', 'Accept: text/xml')); if ($http->getHeader('user-agent') === null) { $http->setHeaders(array('User-Agent: Zend_XmlRpc_Client')); } $xml = $this->_lastRequest->__toString(); $http->setRawData($xml); $httpResponse = $http->request(Zend_Http_Client::POST); if (!$httpResponse->isSuccessful()) { /** * Exception thrown when an HTTP error occurs * @see Zend_XmlRpc_Client_HttpException */ throw new Zend_XmlRpc_Client_HttpException($httpResponse->getMessage(), $httpResponse->getStatus()); } if ($response === null) { $response = new Zend_XmlRpc_Response(); } $this->_lastResponse = $response; $this->_lastResponse->loadXml(trim($httpResponse->getBody())); }
/** * Perform an XML-RPC request and return a response. * * @param Zend_XmlRpc_Request $request * @param null|Zend_XmlRpc_Response $response * @return void * @throws Zend_XmlRpc_Client_HttpException */ public function doRequest($request, $response = null) { $this->_lastRequest = $request; Zend_EncodingProxy::setOutputEncoding('UTF-8'); Zend_EncodingProxy::setInputEncoding('UTF-8'); Zend_EncodingProxy::setInternalEncoding('UTF-8'); $http = $this->getHttpClient(); if ($http->getUri() === null) { $http->setUri($this->_serverAddress); } $http->setHeaders(array('Content-Type: text/xml; charset=utf-8', 'Accept: text/xml')); if ($http->getHeader('user-agent') === null) { $http->setHeaders(array('User-Agent: Zend_XmlRpc_Client')); } $xml = $this->_lastRequest->__toString(); $http->setRawData($xml); $httpResponse = $http->request(Zend_Http_Client::POST); if (!$httpResponse->isSuccessful()) { /** * Exception thrown when an HTTP error occurs * @see Zend_XmlRpc_Client_HttpException */ // require_once 'Zend/XmlRpc/Client/HttpException.php'; throw new Zend_XmlRpc_Client_HttpException($httpResponse->getMessage(), $httpResponse->getStatus()); } if ($response === null) { $response = new Zend_XmlRpc_Response(); } $this->_lastResponse = $response; $this->_lastResponse->loadXml(trim($httpResponse->getBody())); }
/** * Perform an JSON-RPC request and return a response. * * @param Zend_Json_Server_Request $request * @param null|Zend_Json_Client_Response $response * @return void * @throws Zend_Json_Client_HttpException */ public function doRequest($request, $response = null) { $this->_lastRequest = $request; #iconv_set_encoding('input_encoding', 'UTF-8'); #iconv_set_encoding('output_encoding', 'UTF-8'); #iconv_set_encoding('internal_encoding', 'UTF-8'); $http = $this->getHttpClient(); $http->setUri($this->_serverAddress); $http->setHeaders(array('Content-Type: application/json-rpc; charset=utf-8', 'User-Agent: Zend_Json_Client/' . Zend_Version::VERSION, 'Accept: application/json-rpc')); $json = $this->_lastRequest->__toString(); $http->setRawData($json); $httpResponse = $http->request(Zend_Http_Client::POST); if (!$httpResponse->isSuccessful()) { /** * Exception thrown when an HTTP error occurs * @see Zend_XmlRpc_Client_HttpException */ require_once 'Zend/Json/Client/HttpException.php'; throw new Zend_Json_Client_HttpException($httpResponse->getMessage(), $httpResponse->getStatus()); } if ($response === null) { $response = new Zend_Json_Client_Response(); } $this->_lastResponse = $response; $this->_lastResponse->loadJson($httpResponse->getBody()); }