从原始响应中删除HTTP标头
假设我们向URL发出请求并取回原始响应,如下所示:
HTTP / 1.1 200 OK
日期:2010年4月28日星期三14:39:13 GMT
过期:-1
Cache-Control:private,max-age = 0
内容类型:text / html; 字符集= ISO-8859-1
Set-Cookie:PREF = ID = e2bca72563dfffcc:TM = 1272465553:LM = 1272465553:S = ZN2zv8oxlFPT1BJG; expires = Fri,2012年04月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来提出请求; 这就是为什么我得到原始回应。
标题和正文由空行分隔。 没有RE的话,这样做更容易。 只需搜索第一个空行。
如果使用HttpWebrequest类,则会返回一个HttpWebResponse对象,该对象又包含一组Headers。 然后,您可以删除它们,解析它们或按照您的意愿做任何事情。
请注意,使用子字符串方法会使您返回前导回车符。 我用这个:
string HTTPHeaderDelimiter = "rnrn";
if (RawHTTPResponse.IndexOf("HTTP/1.1 200 OK") > -1)
{
HTTPPayload = RawHTTPResponse.Substring(RawHTTPResponse.IndexOf(HTTPHeaderDelimiter)+HTTPHeaderDelimiter.Length);
}
else
{
return;
}
链接地址: http://www.djcxy.com/p/45423.html
上一篇: Remove HTTP headers from a raw response
下一篇: Differentiating public API responses from authenticated API responses