问题:
我正在尝试让我的网站前端使用RESTful后端从我的数据库中获取信息。我在下面的PHP / cURL代码适用于除https://mydomain.com [/ anything]以外的任何URL,其中mydomain是我正在使用的域,[/ anything]是任何子域。它总是只返回一个带有http代码200的标题和一个空体,即使我调用一个充满破坏代码的URL。但是,如果我在Web浏览器中输入相同的URL,那么我会得到预期的输出(在大多数情况下是JSON字符串)。
所以回顾一下:
如果我使用我的代码致电www.google.ca,我会获得构成www.google.ca的XML。好
如果我使用我的网络浏览器调用https:// mydomain.com/thing,我会获得保存数据库中信息的预期JSON字符串。优异的
如果我用我的代码调用https:// mydomain.com/thing,我会得到一个没有正文的标题,显示http代码为200.令人沮丧
代码(它是从AbstractActionController的indexAction调用的):
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,'https://mydomain.com/thing');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIE, $cookieHeader);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
$err = curl_errno ( $ch );
$errmsg = curl_error ( $ch );
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
$httpCode = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
curl_close($ch);
我正在使用的是什么:
使用Eclipse dev环境在Ubuntu中使用Zend Framework 2的PHP5
https:// mydomain.com/thing指向AbstractRESTfulController
修改
知道在cURL exec调用之后我在apache2日志中中中了一个一个的一个一个的一个一率:
[Zend Debugger]无法接收启动命令
[Zend Debugger]无法发送消息
答案 0 :(得分:0)
事实证明,这段代码实际上运行得很好,问题与我的系统验证方式有关。