Laravel guzzle cURL错误6:无法解析主机名:http(请参见http://curl.haxx.se/libcurl/c/libcurl-errors.html)

12

在我的开发环境中,我的代码正常工作。但是当我将代码推送到服务器时,出现错误。

cURL错误6:无法解析主机:http(请参见http://curl.haxx.se/libcurl/c/libcurl-errors.html)

这是我的代码:

use GuzzleHttp\Client;

try {
    $client = new Client();
    $client->request('POST', env('API_DOMAIN') . '/v1/user/auth/verified_email',
        ['headers' => ['Authorization' => 'cm9vcGlhLnVzZXIud2ViOkY0RVN3VXJheS1qVVB1a18='],
         'query'   => ['token' => $key]]);

    return redirect('/')->with('status', 'Your email has been verified. Thanks!')->with('statusType', 'success');
} catch (ConnectException $e) {
    Log::error($e);
    return redirect('/');
}
任何解决方案吗?
谢谢。

6
你在 .env 文件中设置了 API_DOMAIN 吗? - xmhafiz
重新启动服务器。在两个小时后,这就是对我有效的解决方案。 - J.C. Gras
我重新启动了服务器,问题再次发生。 - user3494047
你解决了这个问题吗,兄弟? - King RG
7个回答

13

我的解决方案是在Artisan中清除所有类型的缓存。

一起运行这些命令:

php artisan route:clear
php artisan config:clear
php artisan cache:clear

3

我花了一天的时间发现最佳实践是以以下方式捕获异常:

catch(\Exception $ex)

这个反斜杠符号可以起到关键作用!所以不要使用:

catch(Exception $ex)

您可以将此捕获放在最后,捕获所有其他特定的异常。

3
请阅读关于命名空间的内容,这并不涉及 \,而是关于您错误使用的命名空间。 - KorbenDallas

1
这个答案对我很有帮助。结果是因为在OSX上使用的curl版本不同导致了差异。每个版本都使用了一个openssl版本。虽然很难找到,但解决方法很简单。 参见https://dev59.com/DlQJ5IYBdhLWcg3wCxe3#54908305

1
您的 API_DOMAIN 可能未设置为正确的 URL(它是否以 http:// 或 https:// 开头)?
尝试重新启动 Web 服务器(例如,重新启动 nginx)也值得一试。
这可能是服务器上的连接问题。您可以尝试重启 VPS 或检查防火墙是否阻止了您的出站请求。也许暂时禁用 iptables 或 firewalld。
API_DOMAIN 的 DNS 也可能存在问题。也许您在开发环境的 /etc/hosts 中配置了它,但在生产环境中没有配置。您可以检查 DNS 是否正确解析或将其添加到生产服务器的 /etc/hosts 文件中。

0

最近我遇到了这个问题,结果发现我正在通过代理服务器进行隧道传输。我停止了通过代理路由,问题就解决了。


0

执行

php artisan optimize:clear

以清除 Laravel 中的所有缓存


-1

只需运行您的Web服务器,我曾经遇到过同样的错误,但我的服务器是关闭状态,然后我将其打开,它就可以正常工作了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接