【问题标题】:Not working on Laravel Controller, Working on Tinker不在 Laravel 控制器上工作,在 Tinker 上工作
【发布时间】:2019-10-29 00:16:13
【问题描述】:

受影响的 Guzzle 版本:6.3 Laravel:5.6.3 PHP:7.2.10

说明 如果我想在修补程序中得到响应

$client = new \GuzzleHttp\Client();
$response = $client->get($url);
json_decode($response->getBody())

我收到了预期的回复。

但在我的控制器中

$object_res = $client->get($url);

我遇到错误

“cURL 错误 3:格式错误(请参阅 http://curl.haxx.se/libcurl/c/libcurl-errors.html)”,…}

这意味着,网址不正确,但正如我所描述的,这在修补程序中完美运行。

注意 我的本地主机上一切正常,这仅发生在我的测试服务器上。

如果我需要提供更多信息,请告诉我。

【问题讨论】:

    标签: laravel curl laravel-5 guzzle


    【解决方案1】:

    Tinker 使用与您的应用程序不同的运行时,这可能会导致问题,因为在一种情况下。 php 直接从你的盒子到 api 服务器,在另一个它在发出请求之前通过你的网络服务器。

    首先要做的是清除你的 laravel 缓存和配置

     php artisan cache:clear
    

    php artisan config:clear 
    

    如果失败,我会查看您的网络服务器上的跨域限制或设置。

    【讨论】:

    • 我已经通过参考 github 问题尝试过。
    【解决方案2】:

    请检查您服务器上的 Guzzle 要求。特别是

    To use the PHP stream handler, allow_url_fopen must be enabled in your system's php.ini.
    

    【讨论】:

    • 即启用。
    【解决方案3】:

    我刚刚在我的测试服务器上遇到了这个问题,我使用 cockpit 发现了它。但我的问题出在 alouy/youtube 上。如果您的生产服务器上有 selinux,请检查它。检查 .env 的文件权限。当您的服务器的变量没有出现时,很难给出解决方案。 还阅读你的 laravel 日志,它为我提供了解决方案。 希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 2017-04-10
      • 2018-04-07
      • 2015-04-09
      • 1970-01-01
      相关资源
      最近更新 更多