在我的开发中,我的代码工作正常。当我把它推送到服务器时,它变成了错误。
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('/');
}
解决方案吗?
谢谢
我的解决方案是清除《工匠》中所有类型的缓存。
同时运行以下命令:
php artisan route:clear
php artisan config:clear
php artisan cache:clear
我花了一天的时间发现,最佳实践实际上是用以下方式捕获异常:
catch('Exception $ex)
那就完全不同了!所以不要使用:
catch(Exception $ex)
可以将此catch放在捕获所有其他特定异常的末尾。
您的API_DOMAIN可能没有设置为正确的url(是否以http://或https://)?开头)
重新启动web服务器(例如重启nginx)也是值得尝试的。
也可能是服务器的连接问题。您可以尝试重新启动VPS或检查防火墙是否没有阻止您的传出请求。也许暂时禁用iptables或防火墙。
API_DOMAIN的DNS也可能有问题。也许您确实在开发环境的/etc/hosts中进行了本地配置,但没有在生产环境中进行配置。您可以检查dns解析是否正确,或者将其添加到生产服务器上的/etc/hosts文件中。
这个回答帮助了我。原来是OSX上的curl版本之间存在差异。每个都有一个版本的openssl正在使用。噩梦般的发现,但一个直接的解决方案。见https://stackoverflow.com/a/54908305/2867894
我最近有这个问题,原来我是通过代理服务器进行隧道。我停止了通过代理路由,它工作得很好
清除laravel中的所有缓存
只是运行你的web服务器,我有同样的错误,但我的服务器是关闭的,然后我把它打开,它为我工作