【发布时间】:2019-08-18 09:31:26
【问题描述】:
我目前有一个 Laravel 应用程序,它正在执行从一条路由到同一路由中的另一条路由的 CURL 请求。我的 CURL 如下所示:
//LOGGING THAT A CURL CALL IS ABOUT TO BE MADE
$url = env('APP_URL') . '/tests/add/results';
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return server error
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLINFO_HEADER_OUT, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $test_post_data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
在发送 POST 的路由中,我首先记录的是请求数据:
//LOGING THAT I RECEIVED THE CURL CALL in receiving function
我注意到,请求数据的日志记录的时间与超时时间完全相同,这意味着请求实际上是在初始调用后 10 秒发送的。
在我的日志中,我会看到类似的内容:
10:10:10 - LOGGING CURL CALL
10:10:20 - Recieving CURL call
如果我将超时时间更改为 30,那么日志会在 30 秒后显示我收到了 CURL 调用。
有人知道为什么会发生这种情况吗?
来自 CURL 的响应总是以 false 的形式返回。
【问题讨论】:
-
究竟返回
env('APP_URL')是什么? -
它是我在本地主机上的应用程序的 URL,即127.0.0.1:8000
-
如果你从命令行 curl 会发生什么?
-
从邮递员那里可以正常工作
-
你找到原因了吗?
标签: php laravel curl laravel-5