在我的开发中,我的代码正常运行。当我推送到我的服务器时,它会变成错误。
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('/');
}
任何解决方案?
由于
答案 0 :(得分:2)
我花了一天时间才发现最佳做法是以下列方式实际捕获异常:
catch(\Exception $ex)
那个\有所不同!所以不要使用:
catch(Exception $ex)
您可以将此catch放在捕获所有其他特定异常的末尾。
答案 1 :(得分:0)
您的API_DOMAIN可能尚未设置为正确的网址(以http://或https://开头)?
尝试重新启动Web服务器也是值得的(例如重启nginx)。
它也可能是您服务器上的连接问题。您可以尝试重新启动VPS或检查防火墙是否阻止您的传出请求。也许暂时禁用iptables或firewalld。
API_DOMAIN的DNS也可能存在问题。也许您确实在您的developmnet环境中的/ etc / hosts中本地配置了它,但没有在生产环境中配置它。您可以检查dns是否正确解析或将其添加到生产服务器上的/ etc / hosts文件中。
答案 2 :(得分:0)
我的解决方案是清除Artisan中的所有缓存。
一起运行以下命令:
php artisan route:clear
php artisan config:clear
php artisan cache:clear
答案 3 :(得分:0)
这个答案帮助了我。事实证明,OSX上的curl版本之间存在差异。每个都有使用的openssl版本。梦可寻,但简单易行。 参见https://stackoverflow.com/a/54908305/2867894
答案 4 :(得分:0)
我最近遇到了这个问题,事实证明我正在通过代理服务器建立隧道。我停止通过代理路由,效果很好。
答案 5 :(得分:0)
仅运行您的Web服务器,我遇到相同的错误,但是我的服务器关闭,然后打开它,对我有用