使用PHP CURL调用self Restful API永远挂起

时间:2015-10-21 11:53:38

标签: php session curl

我想编写一个脚本来每隔一小时调用一个Restful API。

我使用Laravel框架。

以下是代码:

include '/var/www/html/dom/vendor/autoload.php';

TestController.php

class TestController extends BaseController { public function __construct(ItemCriteria $itemCriteria) { parent::__construct($itemCriteria); } public function sayHi() { echo 'hi'; } public function getHi() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:8888/api/v1/sayhi"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); echo $output; } }

routes.php

我致电Route::group(array('prefix' => 'api/v1'), function () { Route::get('sayhi', 'Api\TestController@sayHi'); Route::get('gethi', 'Api\TestController@getHi'); } ,但回复永远不会回来。浏览只显示加载。

我尝试过:

在Google上搜索,很多人都说这是因为会话被锁定了。因此,我在api/v1/gethi之前添加代码以关闭会话:

curl_exec

可悲的是,这不起作用。我检查public function getHi() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:8888/api/v1/sayhi"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); session_write_close(); $output = curl_exec($ch); curl_close($ch); echo $output; } ,会话不应按照我的设置自动启动:phpinfo()

enter image description here

我还做了一个小实验:制作了一个API session.auto_start Off,它强制线程休眠10秒钟。在此期间,我致电api/vi/sleep,我发现在第一次通话结束前它不会响应。

api/v1/sayhi

我认为这可能是Apache线程配置问题,但所有配置似乎都很好:

enter image description here

public function sleep()
{
    sleep(10);
}

我的环境:

  • Windows 7 64位。
  • Xampp(Apache 2.4.16; PHP 5.6.12)。

我坚持了几个星期。我不知道我能做的其他事情......

0 个答案:

没有答案