Stut wrote:
Andreas Schlicker wrote:
Hi all,

I'm writing an XML-REC client in PHP, based on the following example:

<?php
$request = xmlrpc_encode_request("method", array(1, 2, 3));
$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
)));
$file = file_get_contents("http://www.example.com/xmlrpc";, false, $context);
$response = xmlrpc_decode($file);
if (xmlrpc_is_fault($response)) {
trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}
?>

If the XMLRPC call takes longer than say 30 seconds, the file_get_contents method doesn't returns null, and the script finishes. However, the XMLRPC server is not finished with the computation and gets a broken pipe since the client has already closed the connection.

Is there some timeout? Am I doing something wrong?

There could be several timeouts at work here. First you can set a timeout in the context[1]. Second the PHP request time limit[2]. And finally your web server (assuming this is running through a web server) will have its own timeout - check the documentation for whatever server you're using for details.

[1] http://php.net/wrappers.http
[2] http://php.net/set_time_limit

Hi Stut,

I already used the set_time_limit to set a script running timeout. Looks like the problem was the timeout in the context.

Thanks very much for you help.

Andreas

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to