HttpWebRequest
で基本認証を使用すると、「送信時に予期しないエラーが発生しました」というメッセージが表示される場合があります。 この問題は、リクエストに認可ヘッダーを手動で追加することで解決されることがよくあります。
この解決策には、ユーザー名とパスワードを Base64 文字列としてエンコードして、さまざまな HTTP サーバー間の互換性を確保することが含まれます。 System.Convert.ToBase64String
メソッドと ISO-8859-1
エンコーディングを組み合わせると、次のことが実現されます。
<code class="language-csharp">string username = "abc"; string password = "123"; string encoded = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));</code>
次に、このエンコードされた文字列を「Basic」認証スキームに追加し、「Authorization」ヘッダーとして HttpWebRequest
オブジェクトに追加します。
<code class="language-csharp">httpWebRequest.Headers.Add("Authorization", "Basic " + encoded);</code>
この手動ヘッダー追加では、指定されたエンコーディングを使用して、基本認証を必要とするサーバーとの適切な通信が保証され、それによってリクエスト プロセス中の「送信時の予期しないエラー」が防止されます。
以上がHttpWebRequest で基本認証を使用する場合の「送信時の予期しないエラー」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。