[英]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.