GetResponseStream 取到的字节流 和 WebClient DownLoaddata 为什么不同

爬了爬了爬了 2016-01-29 05:30:34
小弟算是新手,对一些方法的底层实现不是很清楚,烦请大神解惑。

WebClient 的DownLoadData方法,我去load 一个图片链接,会返回byte[] ,直接存图片就可以了。

而我使用 HttpWebRequest 获取到的响应流,然后再转换为byte[] (因为我需要通过byte[]判断一些东西),

byte[]长度是相同的,然而只是开始的一段相同,使用HttpWebRequest 获得的byte[] 后面一大半全是0,

求助大神.......
...全文
606 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
爬了爬了爬了 2016-02-01
  • 打赏
  • 举报
回复
引用 6 楼 From_TaiWan 的回复:
按理说,同一张图片,获得字节数一样才对 贴代码吧
是这样的,的确一时疏忽。自己钻牛角尖无法自拔了。Request 获得的Response 流并不是一次返回,而是分若干次,所以我需要把所有的流都写到byte[]中才是一个完整的,谢大神回复
爬了爬了爬了 2016-02-01
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
你的代码有错误。
是这样的,的确一时疏忽。自己钻牛角尖无法自拔了。Request 获得的Response 流并不是一次返回,而是分若干次,所以我需要把所有的流都写到byte[]中才是一个完整的,谢大神回复
秋的红果实 2016-01-30
  • 打赏
  • 举报
回复
后面全是0,是不是你定义的byte[]长度太大了,假如你定义了byte[100],实际只有90字节,那么后面的10个字节都是\0
  • 打赏
  • 举报
回复
你的代码有错误。
爬了爬了爬了 2016-01-30
  • 打赏
  • 举报
回复
引用 2 楼 From_TaiWan 的回复:
后面全是0,是不是你定义的byte[]长度太大了,假如你定义了byte[100],实际只有90字节,那么后面的10个字节都是\0
是这样的,我定义的长度是 响应的 ContentLength。然而WebClient 获得的就是这个长度的byte[] ,而我把响应流转byte[] 之后,只获得到了一部分
爬了爬了爬了 2016-01-30
  • 打赏
  • 举报
回复
引用 1 楼 jmlovews 的回复:
你这样提问题 别人没法回复你的。
那我该怎么提
秋的红果实 2016-01-30
  • 打赏
  • 举报
回复
按理说,同一张图片,获得字节数一样才对 贴代码吧
我2我骄傲 2016-01-29
  • 打赏
  • 举报
回复
你这样提问题 别人没法回复你的。
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Collections; using System.IO; using System.Text.RegularExpressions; using RE = System.Text.RegularExpressions.Regex; using System.Security.Cryptography.X509Certificates; /*************************************************************************************************************************************************** * *文件名:HttpProc.cs * *创建人:HeDaode * *日 期:2007.09.01 * *描 述:实现HTTP协议中的GET、POST请求 * *使 用:HttpProc.WebClient client = new HttpProc.WebClient(); client.Encoding = System.Text.Encoding.Default;//默认编码方式,根据需要设置其他类型 client.OpenRead("http://www.baidu.com");//普通get请求 MessageBox.Show(client.RespHtml);//获取返回的网页源代码 client.DownloadFile("http://www.codepub.com/upload/163album.rar",@"C:\163album.rar");//下载文件 client.OpenRead("http://passport.baidu.com/?login","username=zhangsan&password=123456");//提交表单,此处是登录百度的示例 client.UploadFile("http://hiup.baidu.com/zhangsan/upload", @"file1=D:\1.mp3");//上传文件 client.UploadFile("http://hiup.baidu.com/zhangsan/upload", "folder=myfolder&size=4003550",@"file1=D:\1.mp3");//提交含文本域和文件域的表单 *****************************************************************************************************************************************************/ namespace HttpProc { /// ///上传事件委托 /// /// /// public delegate void WebClientUploadEvent(object sender, HttpProc.UploadEventArgs e); /// ///下载事件委托 /// /// /// public delegate void WebClientDownloadEvent(object sender, HttpProc.DownloadEventArgs e); /// ///上传事件参数 /// public struct UploadEventArgs { /// ///上传数据总大小 ///

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧