.NET 2.0のWebClientクラス を使用して、 SSLを介したHTTPPOSTを実行しています。
現在、次のようにuser-agentヘッダーを手動で設定しています。
wc = new WebClient();
wc.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
これは、HTTPトンネリングを実行し、HTTP CONNECTコマンドで特定のユーザーエージェントヘッダーを期待するプロキシサーバーを介して要求を行う場合を除いて、正常に機能します。
プロキシがSSLのトンネルとして機能する場合、プロキシは最初にHTTP CONNECTを受信し、クライアントが接続しようとしている場所を通知します。
問題は、HttpWebRequest.UserAgentまたはWebClient.Headers.Addのいずれかを介して.NETでuser-agentヘッダーを設定した場合、それが最初のCONNECT要求に追加されないことです。それは後続のSSLトラフィックに追加されますが、それは必要なことではありません。
これがC++の場合、WinHttpOpen()を呼び出してセッションを作成し、pwszUserAgentパラメーターを設定してセッション全体のユーザーエージェントを設定します。残念ながら、.NETで同等のものを見つけることができません。
誰かが私を正しい方向に向けることができますか?.NETでクライアントアプリを構築する際に、他の誰かがこの問題に遭遇したに違いありません。