HttpWebRequest request;
//...
HttpWebResponse resp = request.GetResponse();
Int L = resp.ContentLength;c# 人多,就发到这边来了。我获取 http://www.163.com 这类的页面时,上面代码的这个resp.ContentLength值为-1
我想取得下载进度,这个resp.ContentLength=-1就不能进行设置进度,这个该怎么取到页面的大小?
//...
HttpWebResponse resp = request.GetResponse();
Int L = resp.ContentLength;c# 人多,就发到这边来了。我获取 http://www.163.com 这类的页面时,上面代码的这个resp.ContentLength值为-1
我想取得下载进度,这个resp.ContentLength=-1就不能进行设置进度,这个该怎么取到页面的大小?
解决方案 »
- 怎样读取文本中的通讯录信息,并且以网格的形式显示出来。
- 获取的只是一行数据,用Datatable存放有点浪费,是不是有什么好的办法
- MSshart 图表如何设置网格线的数量个间距
- 要填写一个调查表,56%这样的百分数应该在数据库里用什么数据类型来存储?
- 怎么把jpg图像变成ico
- 求助:编写服务器socket侦听时,在发送完响应消息时,服务器一直处于忙碌(界面鼠标沙斗状)但还能处理客户请求
- [分享]c#遍历目录所有文件(含子目录)定时剪切到目标文件夹
- 一个关于序列化的怪问题 谢谢谢谢谢谢就这些分了
- WPF,请看下DataGrid的绑定
- 怎么让一个控件的size location随form的大小按比例变化
- 为什么我的richTextBox中没有DragEnter和DragDrop【SOS高人】
- 无法隐藏登录名和密码
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
request.Headers.Add("Accept-Encoding", "gzip,deflate");
request.AutomaticDecompression = DecompressionMethods.None;
HttpWebResponse resp = request.GetResponse() as HttpWebResponse;
long L = resp.ContentLength;
System.IO.Stream responseStream = responseStream = resp.GetResponseStream(); responseStream = new System.IO.Compression.GZipStream(responseStream, System.IO.Compression.CompressionMode.Decompress);
System.IO.StreamReader Reader = new System.IO.StreamReader(responseStream, Encoding.Default);
String result = Reader.ReadToEnd();
使用的是Transfer-Encoding:chunked方法,没有Conntent-Length这个响应头,无法得到resp.ContentLength属性, 你需要先全都得到内容
有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。
进行Chunked编码传输的HTTP Response会在消息头部设置:Transfer-Encoding: chunked表示Content Body将用Chunked编码传输内容。