从Zend Controller Action向localhost发出的以下http请求因超时而失败。我的猜测是我错过了一个非常基本的概念,因为对外部uri(例如www.google.com)的请求正常返回。
当然,下面的网址($ localUrl)会在直接粘贴到浏览器时返回预期结果(TEST)。
我正在使用Zend Framework 2(基于当前的skelleton应用程序 - 今天:2016/06/19)在XAMPP 3.2.2 Windows(开发人员环境)中使用PHP 5.6.21并启用了xdebug。
更新1
我现在调试得更深了一些:
发送请求时,程序会在超时期间卡住。
之后我得到了一个" Zend \ Http \ Client \ Adapter \ Exception \ TimeoutException"。
之后调试器中的代码会跳转到所请求的php脚本(checklogin.php),为了简单起见,我只使用了一个echo语句。
之后,脚本会停止,而不是继续在Action函数中返回结果,而是会出现Timeout Exception Errorpage。
请不要过多地阅读代码,因为它还没有正确处理结果。
namespace MyModule\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Http\Client;
class PhpbbAuthController extends AbstractActionController{
public function checkAction(){
$localUrl = 'http://localhost/zendproject/public/phpbbauth/checklogin.php';
$client = new Client($localUrl , array(
'maxredirects' => 0,
'timeout' => 10
));
$response = $client->send();
return new ViewModel(array('content'=>$response->getContent()));
}
}
更新2
checklogin.php的内容
<?php
echo "TEST";
?>
小注: 对于我的整体问题,很可能有更好的解决方案,即将zend应用程序集成到现有论坛的PHPBB3身份验证中,但在此处包含此内容将超出此问题的范围。