[英]How to parse a raw HTTP response as HttpListenerResponse?
如果我有一个原始 HTTP 响应作为字符串:
HTTP/1.1 200 OK
Date: Tue, 11 May 2010 07:28:30 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
Server: gws
X-XSS-Protection: 1; mode=block
Connection: close
<!doctype html><html>...</html>
有没有一种简单的方法可以将其解析为HttpListenerResponse
对象? 或者至少是某种 .NET 对象,所以我不必处理原始响应。
我目前正在做的是提取标头键/值对并将它们设置在HttpListenerResponse
。 但是有些headers 无法设置,然后我不得不剪掉响应的主体并将其写入OutputStream
。 但是身体可以被压缩,或者它可以是一个图像,我还不能开始工作。 并且有些响应到处都包含随机字符,这看起来像是编码问题。 这很麻烦。
我收到原始响应,因为我使用 SOCKS 发送 HTTP 请求。 我正在开发的程序基本上是一个 HTTP 代理,它可以像 Privoxy 一样通过 SOCKS 代理路由请求。
看起来没有简单的方法来转换它们。 这些文章帮助:
http://www.jeffcrossman.com/2009/08/27/using-httplistener-to-build-a-proxy
我最终做了一些非常相似的事情。
也许你想看看Webclient
的ResponseHeaders属性:
WebClient wc = new WebClient();
wc.DownloadStringAsync(new Uri("http://www.foo.com"));
WebHeaderCollection myWebHeaderCollection = myWebClient.ResponseHeaders;
for (int i=0; i < myWebHeaderCollection.Count; i++)
Console.WriteLine ("\t" + myWebHeaderCollection.GetKey(i) +
" = " + myWebHeaderCollection.Get(i));
请告诉我这是否不是您要搜索的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.