【发布时间】:2014-03-27 14:49:04
【问题描述】:
我有以下代码
$URL = 'https://hostedconnect.m5net.com/bobl/bobl';
$xml = '<Command xmlns:m5="http://www.m5net.com/org/m5/data/v2/cti" xmlns:csta="http://www.ecma-international.org/standards/ecma-323/csta/ed5">
<ApplicationContext>BoblConsole</ApplicationContext>
<Arguments xsi:type="org.m5.data.v2.cti.HostedConnectObject" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<csta:MonitorStart>
<csta:monitorObject>
<csta:deviceObject>DEVICE</csta:deviceObject>
</csta:monitorObject>
</csta:MonitorStart>
</Arguments>
<FormattedXml>true</FormattedXml>
<Id>9</Id>
<Name>org.m5.apps.v2.cti.HostedConnect.request</Name>
<Password>PASSWORD</Password>
<User>USER</User>
</Command>';
$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array (
'Transfer-Encoding: chunked',
'Content-Encoding: chunked',
'Connection: keep-alive',
'Content-Type: text/xml'
));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$test = stream_get_contents($fp_tmp);
API 应该返回 XML 数据,但我不确定如何在 cURL 运行时访问该数据。我尝试过使用流,并将数据写入文件,但它们似乎都不起作用。 cURL 请求工作正常。刚运行时它返回 550 字节,当发生应该返回数据的事件时,它返回 9100 字节。这让我相信正在发生正确的事情,但我不知道如何从 curl 访问数据。
我需要 curl 持续运行,这是为了通过我们的托管服务提供商提供的 api 来监控我们的电话系统。
【问题讨论】:
-
只是为了澄清:
I need to the curl to run continuously即 http 连接既没有关闭也没有响应“完成” - 服务器或多或少地在一个永无止境的 http 响应中“流式传输”事件? -
是的,没错。我本来可以更清楚的。当我们不再需要它时,有一个用于关闭连接的 api 调用。