我想在非常低的级别上处理HTTP - 目前我仍然坚持使用HTTP CONNECT动词。看起来HttpListener
无法访问这些请求,因为它们是在HTTP API或HTTP.SYS内部处理的。我能够使用本机TcpListener
处理此类请求,但在这种情况下,我将失去所有HTTP功能=我将从头开始实现HTTP。
我还检查了FiddlerCore,但它也在一些Win API层上处理这些请求。有没有纯.NET HTTP堆栈?
编辑:我正在使用HTTP代理进行一些额外的请求分析和统计,因此我不想丢失HTTP解析,同时我想了解SSL连接。
答案 0 :(得分:1)
使用Tcp *和Socket *,而不是与Http *相关的类在.NET中使用真正的低级别。
TCP位于HTTP协议栈的底部。
如果需要,可以使用TCP套接字,只需使用c#中的“winsock2.dll”互操作调用,以及结构定义等所有相关内容,或使用本机C ++
答案 1 :(得分:1)
好吧,如果您正在构建自定义HTTP / HTTPS服务器或代理,而您不介意第三方组件,那么我们的SecureBlackbox包含HTTP / HTTPS服务器组件,您可以使用任何动词执行几乎任何操作。纯.NET,使用任何套接字类。
答案 2 :(得分:0)
确定。同样问题不在于API,而在于开发人员:)
我有一些测试套件来测试我的实现,但测试套件是直接连接(而不是代理) - 这是第一个问题。第二个问题是,如果我想单独测试Connect动词,则此测试套件应使用TcpClient
而不是HttpWebRequest
,因为HttpWebRequest
仅在内部使用HTTPS代理时使用它。