He buscado en Google por todas partes, pero nadie ha publicado una solución, todos dicen que para establecer el tiempo de espera en la configuración, pero ¿cómo hacer esto?

¿Cómo puedo restablecer/anular esta configuración de mi XMLRPC cliente o en el servidor?

Aquí es lo que estoy tratando de:

$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc');
$client = $server->getProxy(); 

//Increasing the timeout
$client->setConfig(array('timeout'=>30));

Aquí está el error:

Fatal error: Uncaught exception 'Zend_XmlRpc_Client_FaultException' 
with message 'Method "setConfig" does not exist' 
in /usr/share/php/libzend-framework-php/Zend/XmlRpc/Client.php:370

Tratando de pasar como arg:

$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc', array('timeout'=>30));

Aquí está el error:

Catchable fatal error: Argument 2 passed to 
Zend_XmlRpc_Client::__construct() must be an 
instance of Zend_Http_Client

Encontrado la solución y aquí está:

$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc');

//Get the HTTP Client used by the XMLRPC client
$http_client = $server->getHttpClient();

//Increasing the HTTP timeout
$http_client->setConfig(array('timeout'=>30));

$client = $server->getProxy(); 

Una Línea que a mi me funciona así:

$server = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc');

//Get the HTTP Client used by the XMLRPC client and increasing the HTTP timeout
$server->getHttpClient()->setConfig(array('timeout'=>30));

$client = $server->getProxy();

3 Comentarios

  1. 16

    Zend documentación especifica los parámetros de configuración que se pueden utilizar. Me imagino que usted puede simplemente aumentar el tiempo de espera de 10 segundos a 20 o 30. Lo que es adecuado para usted.

    $client = new Zend_Http_Client('http://example.org', array('timeout' => 30));

    o:

    $client->setConfig(array('timeout'=>30));

    ACTUALIZACIÓN – Zend_Http_Client es utilizado por Zend_XmlRpc_Client. Usted puede establecer y acceder a la Zend_Http_Client a través de la Zend_XmlRpc_Client objeto.

    $xmlrpc_client = new Zend_XmlRpc_Client('http://127.0.0.1/xmlrpc');
    $xmlrpc_client->getHttpClient()->setConfig(array('timeout'=>30'));

    Yo no lo he probado, así que no sé que va a funcionar, pero también puede pasar en su propia Zend_Http_Client objeto a un Zend_XmlRpc_Client objeto mediante la setHttpClient() método descrito (en lugar arcanely) en la parte inferior de la Zend página de documentación para Zend_XmlRpc_Client.

    • He estado peinando la documentación, Gracias a lo grande!!!!
    • Hmm creo que me saltó el arma. Actualizado pregunta
    • Buscando XMLRPC cliente, no el cliente HTTP
    • La actualización de mi respuesta – creo que esto va a resolver su problema – de 1 minuto, por favor
    • gracias, pero lo he descubierto, gracias por ayudarme a encontrar la solución
  2. 1

    Cualquier cliente que esté utilizando:

    $client->getHttpClient()->setConfig(array('timeout'=>30));

    donde $client podría ser un Resto o Cliente Soap.

    También, una de las respuestas aquí tiene un pequeño error que causa dolor:

    client->getHttpClient()->setConfig(array('timeout'=>30')); - remove single quote after 30
  3. 0

    Esas respuestas están bien, aunque a partir de Zend HTTP 2.0 (lanzado en 2012 – ver diff) es :

    $client->getHttpClient()->setOptions(array('timeout'=>30));

Dejar respuesta

Please enter your comment!
Please enter your name here