私の開発では、私のコードは適切に機能しています。サーバーにプッシュするとエラーになります。
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
私は1日を費やして、次の方法で実際に例外をキャッチすることがベストプラクティスであることを発見しました。
catch(\Exception $ex)
その\はすべての違いを生みます!使用しないでください:
catch(Exception $ex)
このキャッチは、他のすべての特定の例外がキャッチされる最後に置くことができます。
API_DOMAINが適切なURLに設定されていない可能性があります(http://またはhttps://で始まっていましたか)?
Webサーバーを再起動することも試してみる価値があります(例:nginxを再起動します)。
サーバーの接続の問題である可能性もあります。 VPSの再起動を試すか、ファイアウォールが送信リクエストをブロックしていないかどうかを確認できます。たぶんiptablesやfirewalldを少しの間無効にしてください。
API_DOMAINのDNSにも問題がある可能性があります。多分、開発環境の/ etc/hostsでローカルに設定しましたが、本番環境では設定しませんでした。 DNSが適切に解決するかどうかを確認するか、本番サーバーの/ etc/hostsファイルに追加することができます。
Webサーバーを実行するだけですが、同じエラーが発生しましたが、サーバーがオフでしたが、オンにすると問題が解決しました
この答えは私を助けました。これは、OSXのカールバージョン間の相違であることが判明しました。それぞれに使用されているopensslのバージョンがありました。悪夢は見つけるが、簡単な修正。参照してください https://stackoverflow.com/a/54908305/2867894
最近この問題が発生し、プロキシサーバーを経由してトンネリングしていることがわかりました。プロキシ経由のルーティングを停止したところ、問題なく動作しました。