【问题标题】:PHP cURL request takes up the entire TimeoutPHP cURL 请求占用整个 Timeout
【发布时间】: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


【解决方案1】:

我执行了以下操作来完成发布请求: 我没有通过 CURL 调用路由,而是直接向路由函数发帖

            $testController = new TestsController;
            $test_data_request = new \Illuminate\Http\Request();
            $test_data_request->setMethod('POST');
            $test_data_request->request->add( $test_post_data );
            $testId = $testController->addTestResults($test_data_request);

【讨论】:

  • 很好的解决方案!当 curl 根本不起作用时,像我这样的人肯定会重视你的工作。赞一个。
【解决方案2】:

您没有提供足够的信息,但我认为,问题将是以下一项或多项:

  • WebServer http://127.0.0.1:8000 未运行
  • 位于http://127.0.0.1:8000/tests/add/results 的脚本运行时间过长,请求在完成前超时
  • 请求的路径正在返回重定向标头并创建无限循环
  • 响应太大,无法在 30 秒内完成数据传输(如果在 localhost 上则非常奇怪)

尝试更多调试并提供更多相关信息,以便我们为您提供帮助。


PS:首先我会尝试捕获标题 (curl_setopt($ch, CURLINFO_HEADER_OUT, true);) 并打印出响应 (var_dump($response);) - 或将其保存到某个文件:)

【讨论】:

  • 我可以使用邮递员发送邮件,它工作正常。就像我提到的 CURL 调用本身似乎只在超时限制过去后才执行所以如果我放 10 秒它会在 10 秒后执行
  • @Yeak 你能把响应头放到原始问题上吗? (作为编辑)
猜你喜欢
  • 2012-11-05
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多