【发布时间】:2014-03-09 23:51:58
【问题描述】:
curl 有一个非常奇怪的问题,当我向我的 ubuntu apache 服务器发出 post 请求时,apache 服务器挂起,如果我调试我的 php 代码,我可以看到
$fp = curl_exec($ch);
永远不会回来。我认为实际的 post 请求是正确的,因为我可以使用 postman 成功地执行相同的 POST 请求。
以下是我的 curl 选项:
$ch = curl_init();
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER , 0);
curl_setopt($ch,CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$testHeader);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
$fp = curl_exec($ch);
一个奇怪的事情是,如果我很快,并重新加载我的 apache 服务器
sudo service apache reload
当它处于挂起状态时,curl_exec 立即返回,我得到了我的数据。我不是一个真正的 Web 开发人员,更多的是一个 Windows 人,所以任何帮助都将不胜感激。 :)
更新 由于进程挂起,我看不到来自 Curl 的错误报告。它从来没有达到可以给我错误的地步。当我重新加载 apache 服务器时,请求返回,然后没有报告错误。我添加了 CURLOPT_VERBOSE 选项。
更新 2: 好的,我还可以从主机和客户端的 curl 命令行运行帖子。值得一提的是,我的主机是虚拟机。开始认为它更像是一种网络事物。
【问题讨论】:
-
CURLOPT_VERBOSE告诉你什么?