PHP Curl - 来自服务器的空回复

时间:2015-09-23 15:09:29

标签: php apache curl

我有一个使用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详细信息:

  • POST_MAX_SIZE - 8MB
  • 内存限制 - 256 MB
  • DEFAULT_SOCKET_TIMEOUT - 60

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我怀疑是问题是内存泄漏。我重新访问了我的API代码并取消了一些不必要的对象,这些对象释放了内存以供进一步处理。 @Timm和@Mihai感谢您的帮助!!