簡體   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