繁体   English   中英

从原始响应中删除HTTP标头

[英]Remove HTTP headers from a raw response

假设我们向URL发出请求,并返回原始响应,如下所示:

HTTP / 1.1 200 OK
日期:2010年4月28日,星期三14:39:13 GMT
过期:-1
缓存控制:私有,最大年龄= 0
内容类型:text / html; 字符集= ISO-8859-1
Set-Cookie:PREF = ID = e2bca72563dfffcc:TM = 1272465553:LM = 1272465553:S = ZN2zv8oxlFPT1BJG; expires =星期五,2012年4月27日14:39:13 GMT; 路径= /; domain = .google.co.uk
服务器:gws
X-XSS-Protection:1; 模式=阻止
连接方式:关闭

<!doctype html><html><head>...</head><body>...</body></html>

从C#响应中删除HTTP标头的最佳方法是什么? 使用正则表达式? 将其解析为某种HTTPResponse对象并仅使用主体?

编辑:

我正在使用SOCKS发出请求; 这就是为什么我得到原始回应。

标头和正文由空行分隔。 如果没有RE,这样做真的很容易。 只需搜索第一个空行。

如果使用HttpWebrequest类,则会返回一个HttpWebResponse对象,该对象又包含Headers的集合。 然后,您可以删除它们,解析它们或对它们做任何您想做的事情。

请注意,使用substring方法将使您得到前导回车符。 我用这个:

 string HTTPHeaderDelimiter = "\r\n\r\n";
 if (RawHTTPResponse.IndexOf("HTTP/1.1 200 OK") > -1)
    {
       HTTPPayload = RawHTTPResponse.Substring(RawHTTPResponse.IndexOf(HTTPHeaderDelimiter)+HTTPHeaderDelimiter.Length);
    }
    else
    {
       return;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM