如何将原始HTTP响应解析为HttpListenerResponse?

Edg*_*gar 6 c# proxy httpresponse httplistener socks

如果我将原始HTTP响应作为字符串:

HTTP/1.1 200 OK
日期:2010年5月11日星期二07:28:30 GMT
到期:-1
Cache-Control:private,max-age = 0
Content-Type:text/html; charset = UTF-8
服务器:gws
X-XSS-Protection:1; mode = block
连接:关闭

<!doctype html><html>...</html>
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将它解析为一个HttpListenerResponse对象?或者至少是某种.NET对象,所以我不必使用原始响应.

我目前正在做的是提取标题键/值对并在HttpListenerResponse上设置它们.但是有些头文件无法设置,然后我必须剪切响应的主体并将其写入OutputStream.但是身体可以被gzipped,或者它可能是一个图像,我还无法工作.并且一些响应在任何地方都包含随机字符,这看起来像编码问题.这很麻烦.

我正在获得原始响应,因为我正在使用SOCKS发送HTTP请求.我正在处理的程序基本上是一个HTTP代理,它可以通过SOCKS代理路由请求,就像Privoxy那样.

Edg*_*gar 2

似乎没有简单的方法来转换它们。这些文章帮助:

如何实现自定义代理服务器?

http://www.jeffcrossman.com/2009/08/27/using-httplistener-to-build-a-proxy

我最终做了一些非常相似的事情。