2

別のサーバーへの接続を中継するプロキシに取り組んでいます。IHttpHandler特定のアドレスのリクエストを受け取り、それらをプロキシに送信するを実装しました。

私のプロキシは基本的にプロキシサーバーへのsockect接続を開始し、元のリクエストを読み取ります。

var requestString = new StreamReader(httpRequest.InputStream).ReadToEnd();

この時点で問題が発生します。入力ストリームには、完全なリクエストではなく、HTTPリクエストの本文のストリームのみが含まれます。

HttpRequestオブジェクトから再構築せずに完全なHTTPリクエストを取得するにはどうすればよいですか?

4

2 に答える 2

1

ASP .NET の決定的なワンライナーについては知りませんが、このフォーラムの投稿に示されているように、かなり近いものにすることができます。提案されているのは、最初の行を HttpRequest プロパティから作成し、次に を追加してから、既に行っているようServerVariables["ALL_RAW"]にリクエスト本文を追加することです。InputStream

于 2013-03-11T21:31:22.393 に答える
0

「完全な HTTP リクエスト」オブジェクトを取得する唯一の方法は、何らかの方法で実際に再構築することです。ただし、このプロセスにオブジェクト全体が必要かどうかはわかりません。おそらく、処理のために HttpRequest 内の項目のサブセットを取得できますか? 必要なオブジェクトのさまざまな部分を手動で連結して、新しいものにすることができます。ただし、HttpRequest の使用から逸脱すると、それはすべてカスタムになります。

于 2013-03-11T21:15:07.087 に答える