[PHP] XMLRPC and file_get_contents
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? Kind regards, Andreas -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] XMLRPC and file_get_contents
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 -Stut -- http://stut.net/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] XMLRPC and file_get_contents
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