HttpClient 資格情報の問題のデバッグ
HttpClient がリクエストで認証の詳細を送信していないため、サーバーで認証が失敗します。 WebClient は期待どおりに機能しますが、HttpClient は失敗します。根本原因を特定して修正しましょう。
UseDefaultCredentials
はすでに true
に設定されています。 ただし、これで常に十分というわけではありません。 システムには正しい認証情報が必要です。
これを解決する方法は次のとおりです:
HttpClientHandler
を使用して資格情報を明示的に定義するには、CredentialCache.DefaultCredentials
:<code class="language-csharp">var myClient = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true, Credentials = CredentialCache.DefaultCredentials });</code>
これにより、HttpClient は WebClient の動作を反映してデフォルトのシステム認証情報を使用するようになります。 これにより、Web アプリケーションへのリクエスト中にユーザーが適切に偽装されることが保証されます。
以上がHttpClient が資格情報を渡さないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。