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

时间:2016-08-12 02:40:11

标签: php laravel curl

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

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('/');
}

任何解决方案?

由于

6 个答案:

答案 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服务器,我遇到相同的错误,但是我的服务器关闭,然后打开它,对我有用