import v1.1.0_RC2 | 2009-09-20

This commit is contained in:
2019-07-17 22:19:00 +02:00
parent 3b7ba80568
commit 38c146901c
2504 changed files with 101817 additions and 62316 deletions

View File

@ -15,8 +15,9 @@
* @category Zend
* @package Zend_XmlRpc
* @subpackage Client
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: Client.php 17759 2009-08-22 21:26:21Z lars $
*/
@ -70,7 +71,7 @@ require_once 'Zend/XmlRpc/Fault.php';
* @category Zend
* @package Zend_XmlRpc
* @subpackage Client
* @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_XmlRpc_Client
@ -267,10 +268,13 @@ class Zend_XmlRpc_Client
$http->setHeaders(array(
'Content-Type: text/xml; charset=utf-8',
'User-Agent: Zend_XmlRpc_Client',
'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);
@ -313,29 +317,36 @@ class Zend_XmlRpc_Client
$success = false;
}
if ($success) {
$validTypes = array(
Zend_XmlRpc_Value::XMLRPC_TYPE_ARRAY,
Zend_XmlRpc_Value::XMLRPC_TYPE_BASE64,
Zend_XmlRpc_Value::XMLRPC_TYPE_BOOLEAN,
Zend_XmlRpc_Value::XMLRPC_TYPE_DATETIME,
Zend_XmlRpc_Value::XMLRPC_TYPE_DOUBLE,
Zend_XmlRpc_Value::XMLRPC_TYPE_I4,
Zend_XmlRpc_Value::XMLRPC_TYPE_INTEGER,
Zend_XmlRpc_Value::XMLRPC_TYPE_NIL,
Zend_XmlRpc_Value::XMLRPC_TYPE_STRING,
Zend_XmlRpc_Value::XMLRPC_TYPE_STRUCT,
);
$params = (array)$params;
foreach ($params as $key => $param) {
if (is_array($param) && empty($param)) {
$type = 'array';
foreach ($signatures as $signature) {
if (!is_array($signature)) {
continue;
}
if (array_key_exists($key + 1, $signature)) {
$type = $signature[$key + 1];
$type = (in_array($type, array('array', 'struct'))) ? $type : 'array';
break;
}
$type = Zend_XmlRpc_Value::AUTO_DETECT_TYPE;
foreach ($signatures as $signature) {
if (!is_array($signature)) {
continue;
}
if (isset($signature['parameters'][$key])) {
$type = $signature['parameters'][$key];
$type = in_array($type, $validTypes) ? $type : Zend_XmlRpc_Value::AUTO_DETECT_TYPE;
}
$params[$key] = array(
'type' => $type,
'value' => $param
);
}
$params[$key] = Zend_XmlRpc_Value::getXmlRpcValue($param, $type);
}
}
}
$request = new Zend_XmlRpc_Request($method, $params);
$request = $this->_createRequest($method, $params);
$this->doRequest($request);
@ -352,4 +363,14 @@ class Zend_XmlRpc_Client
return $this->_lastResponse->getReturnValue();
}
/**
* Create request object
*
* @return Zend_XmlRpc_Request
*/
protected function _createRequest($method, $params)
{
return new Zend_XmlRpc_Request($method, $params);
}
}