ホームページ >バックエンド開発 >C++ >HttpWebRequest 基本認証での「基になる接続が閉じられました」エラーを修正する方法?

HttpWebRequest 基本認証での「基になる接続が閉じられました」エラーを修正する方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-10 19:43:12535ブラウズ

How to Fix

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 を使用してエンコードし、結果の文字列を AuthorizationHttpWebRequest ヘッダーに追加します。 これにより、リクエストが適切に認証され、接続の終了を防ぎ、正常な通信が可能になります。 ISO-8859-1 エンコーディングの使用は、多くの認証エラーを解決するために重要です。 ヘッダーを手動で設定することにより、アプリケーションはデフォルトの認証プロセスで発生する可能性のある問題を回避します。

以上がHttpWebRequest 基本認証での「基になる接続が閉じられました」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。