高手来.HTTP协议的Chunked 如何解码
本人用WebRequest抓取"http://my.xingkong.com/zhangyiping/blog/rss.html"这个地址时发现HTTP头部有Transfer-Encoding: chunked不能抓取...
用抓包器发现返回的内容
195ed
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
多了一行195ed
在网上查找一些资料,确认是chunked编码造成的
网上的解码都不是c#的..请教高手..
在线等...急 --------------------编程问答-------------------- 晕...在线等高手.....急....
--------------------编程问答-------------------- 没有人懂得吗?....
寻找高手.... --------------------编程问答-------------------- //--用下面的 并未发现问题
using System.Net;
using System.IO;
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(GetContentFromUrll("http://my.xingkong.com/zhangyiping/blog/rss.html"));
}
private string GetContentFromUrll(string _requestUrl)
{
string _StrResponse = "";
HttpWebRequest _WebRequest = (HttpWebRequest)WebRequest.Create(_requestUrl);
_WebRequest.Method = "GET";
WebResponse _WebResponse = _WebRequest.GetResponse();
StreamReader _ResponseStream = new StreamReader(_WebResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
_StrResponse = _ResponseStream.ReadToEnd();
_WebResponse.Close();
_ResponseStream.Close();
return _StrResponse;
} --------------------编程问答-------------------- 帮你顶,顺便接点分换裤衩 --------------------编程问答-------------------- _StrResponse = _ResponseStream.ReadToEnd();
因为这个站点是以chunked编码一段一段输出的,所以根本不能获取它的长度.因此ReadToEnd()就会报错..
--------------------编程问答-------------------- 5楼说的对,3楼代码无效。 --------------------编程问答-------------------- 好问题,关注一下
补充:.NET技术 , C#