假设我们向URL发出请求并返回原始响应,如下所示:
HTTP / 1.1 200 OK
日期:2010年4月28日星期三格林尼治标准时间14:39:13 到期:-1
Cache-Control:private,max-age = 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;路径= /;域= .google.co.uk
服务器:gws
X-XSS-Protection:1;模式=块
连接:关闭
<!doctype html><html><head>...</head><body>...</body></html>
从C#中的响应中删除HTTP标头的最佳方法是什么?有正则表达式?将其解析为某种HTTPResponse对象并仅使用正文?
编辑:
我正在使用SOCKS来提出请求;这就是我得到原始回应的原因。
答案 0 :(得分:4)
标题和正文由空行分隔。没有RE,这样做真的很容易。只需搜索第一个空行。
答案 1 :(得分:1)
如果您使用HttpWebrequest课程,则会返回HttpWebResponse个对象,而该对象又包含Headers的集合。然后,您可以删除它们,解析它们或随意执行任何操作。
答案 2 :(得分:1)
请注意,使用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;
}