我有一个使用CURL POST请求调用RESTful API的应用程序。如果POSTFIELD数据的大小较小(<1024字节),则请求给出所需的响应但是在POSTFIELD较大的情况下,CURL执行仅返回“来自服务器的空回复”错误。 API脚本确实执行了,因为我只能看到在我的数据库帖子中插入的部分数据突然终止执行。
我已经尝试过增加default_session_timeout和memory_limit。
我检查了Apache错误日志,但也没有找到任何记录。这是我使用CURL使用REST API的代码:
$curl = curl_init($this->serviceUrl);
$curl_post_data = (is_array($data)) ? http_build_query($data) : $data;
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 420);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
$curl_response = curl_exec($curl);
if ($curl_response === false) {
$errorMessage = curl_error($curl);
$info = curl_getinfo($curl);
\Tools::writeErrorLog($errorMessage);
\Tools::writeErrorLog($info);
}
curl_close($curl);
return $curl_response;
在服务器配置或PHP代码本身中是否有任何特定的修复方法?
PHPINFO详细信息:
答案 0 :(得分:0)
我解决了这个问题。我怀疑是问题是内存泄漏。我重新访问了我的API代码并取消了一些不必要的对象,这些对象释放了内存以供进一步处理。 @Timm和@Mihai感谢您的帮助!!