HttpWebRequest 基本認証の問題の解決
この記事では、基本認証で HttpWebRequest
を使用するときに発生する一般的な問題、「基盤となる接続が閉じられました: 送信時に予期しないエラーが発生しました」について説明します。 このエラーは多くの場合、デフォルトの認証処理との競合によって発生します。
解決策は、デフォルトのメカニズムをバイパスし、Authorization
ヘッダーを直接管理することです。 このヘッダーには、認証方法 (「Basic」) と Base64 でエンコードされた資格情報が必要です。
これを実装する方法は次のとおりです:
<code class="language-csharp">var username = "abc"; var password = "123"; string encoded = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1") .GetBytes(username + ":" + password)); httpWebRequest.Headers.Add("Authorization", "Basic " + encoded);</code>
このコード スニペットは、ユーザー名とパスワードを取得し、(サーバーとの互換性を確保するため) ISO-8859-1 エンコーディングで Base64 を使用してエンコードし、結果の文字列を Authorization
の HttpWebRequest
ヘッダーに追加します。 これにより、リクエストが適切に認証され、接続の終了を防ぎ、正常な通信が可能になります。 ISO-8859-1 エンコーディングの使用は、多くの認証エラーを解決するために重要です。 ヘッダーを手動で設定することにより、アプリケーションはデフォルトの認証プロセスで発生する可能性のある問題を回避します。
以上がHttpWebRequest 基本認証での「基になる接続が閉じられました」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。