PHP中Curl返回的数据被切断
我正在尝试使用PHP的Curl扩展调用webservice。大多数情况下,Web服务的结果被精确地截断为4000字节,但并不总是如此。 如果我使用其他工具或Curl命令行工具调用webservice,则情况并非如此,因此问题可能仅限于php_Curl 我正在做以下工作: 有什么想法吗PHP中Curl返回的数据被切断,php,web-services,curl,Php,Web Services,Curl,我正在尝试使用PHP的Curl扩展调用webservice。大多数情况下,Web服务的结果被精确地截断为4000字节,但并不总是如此。 如果我使用其他工具或Curl命令行工具调用webservice,则情况并非如此,因此问题可能仅限于php_Curl 我正在做以下工作: 有什么想法吗 (我使用的是PHP5.5.30和/或7.0.10,这两个版本的问题相同)curl_setopt($c,CURLOPT_HEADER,1);仅用于调试,结果大小为4000+sizeof(headerdata)。my_
(我使用的是PHP5.5.30和/或7.0.10,这两个版本的问题相同)curl_setopt($c,CURLOPT_HEADER,1);仅用于调试,结果大小为4000+sizeof(headerdata)。my_request_xml_data有多大?大约为12kb。由于Web服务器不返回错误,发送过程似乎正常工作。它似乎给出了一个正确的答案,但它被切断了。有时(很少)它可以工作,而且它总是与其他工具一起工作。输入数据总是相同的。
$fh = fopen($outfilename, "w");
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_NOPROGRESS, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $my_request_xml_data);
curl_setopt($c, CURLOPT_HTTPHEADER, array("Content-Type" => "text/xml"));
curl_setopt($c, CURLOPT_MAXREDIRS, 50);
curl_setopt($c, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($c, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($c, CURLOPT_TCP_KEEPALIVE, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_FILE, $fh);
curl_setopt($c, CURLOPT_HEADER, 1);
$ret = curl_exec($c);
// if $ret is false some error handling comes here...
curl_close($c);
fclose($fh);