コード例 #1
0
 /**
  * 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());
 }