2011-09-15 13 views
0

私は非常に低レベルでHTTPを処理したいと思っています。現時点ではHTTP CONNECT動詞がついていません。 HttpListenerは、HTTP APIまたはHTTP.SYS内のどこかで処理されるため、これらの要求にアクセスできません。私はそのような要求をネイティブのTcpListenerで処理することができますが、そのような場合はすべてのHTTP機能を失うことになります。=私は最初からHTTPを実装します。.NETでHTTP接続を処理する方法は?

また、FiddlerCoreも確認しましたが、一部のWin APIレイヤーでもこれらの要求を処理します。純粋な.NET HTTPスタックはありますか?

編集:追加のリクエスト分析と統計情報を追加してHTTPプロキシを処理しているので、HTTP解析を失いたくないと同時にSSL接続について知りたいと思っています。

+0

"純粋な.NET HTTPスタック"とは何を意味しますか - .NETでは実装されているがHTTP.SYSなどを使用していないスタックは何ですか?もしそうなら、いくつかの第三者のスタック... – Yahia

+0

非常に低いレベルでHTTPを処理したいと思うなら、あなたは本当にHttp *クラスのすべてのHTTP機能を失います。質問は何ですか? –

+0

必要に応じてTCPソケットを使用し、 "winsock2.dll" interop callsフォームを使用します。c# –

答えて

0

ここでも問題はAPIではなく開発者です。

実装をテストするためのテストスイートがありますが、テストスイートは直接(プロキシではなく)接続していました。これが最初の問題でした。 2番目の問題は、HttpWebRequestがHTTPS用のプロキシを使用している場合にのみ内部でのみ使用するため、Connect verbを個別にテストする場合は、HttpWebRequestではなく、このテストスイートでTcpClientを使用する必要があります。

1

Http *関連のクラスではなく、Tcp * ans Socket *を使用して、を実際にという低レベルの.NETで使用します。

TCPはHTTPプロトコルスタックの最下部にあります。

使用TCPソケットそれは、ちょうどあなたがあなたのカスタムを構築している場合は相互運用呼び出しは、C#のを形成し、構造体の定義などのような、関連するすべてのもの、またはネイティブC++

1

まあを使用する「winsock2.dll」を使用したい場合HTTP/HTTPSサーバーまたはプロキシを使用していて、サードパーティのコンポーネントは気にしないと、SecureBlackboxにはHTTP/HTTPSサーバーコンポーネントが組み込まれているため、ほとんどすべての動詞を処理できます。純粋な.NET、任意のソケットクラスを使用します。

関連する問題