繁体   English   中英

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

[英]Laravel guzzle cURL error 6: Could not resolve host: http (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

在我的开发中,我的代码工作正常。 当我推送到我的服务器时,它变成了错误。

cURL error 6: Could not resolve host: http (see 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('/');
}

有什么解决办法吗?

谢谢

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

一起运行这些命令:

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

我花了一天时间发现最好的做法是通过以下方式实际捕获异常:

catch(\Exception $ex)

那 \ 使一切变得不同! 所以不要使用:

catch(Exception $ex)

您可以将此捕获放在捕获所有其他特定异常的末尾。

您的 API_DOMAIN 可能没有设置为正确的 url(它是以 http:// 还是 https:// 开头)?

重新启动 Web 服务器可能也值得一试(例如重新启动 nginx)。

这也可能是您的服务器上的连接问题。 您可以尝试重新启动 VPS 或检查防火墙是否没有阻止您的传出请求。 也许暂时禁用 iptables 或 firewalld。

API_DOMAIN 的 DNS 也可能存在问题。 也许您确实在developmnet 环境的/etc/hosts 中本地配置了它,但没有在生产环境中配置它。 您可以检查 dns 是否正确解析或将其添加到生产服务器上的 /etc/hosts 文件中。

这个答案帮助了我。 结果是 OSX 上的 curl 版本之间存在差异。 每个都有一个正在使用的 openssl 版本。 噩梦般的发现,但一个简单的解决方法。 https://stackoverflow.com/a/54908305/2867894

我最近遇到了这个问题,事实证明我正在通过代理服务器进行隧道传输。 我停止通过代理路由,它工作得很好。

php工匠优化:清除

清除laravel中的所有缓存

只需运行您的网络服务器,我有同样的错误,但我的服务器已关闭,然后我打开它,它对我有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM