当前位置:编程学习 > C#/ASP.NET >>

高手来.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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,