基于http协议文件下载 下载文件大小不正确,求解?

yeah2000 2010-12-26 12:43:50
模拟http下载mp4视频文件,下载文件大小不正确。

用迅雷、浏览器下载下面的视频,最终得到的文件大小正确且播放的结束时间也正确。
http://v.cctv.com/flash/mp4video5/TMS/2010/09/23/92c1e8b73b3646de64da8f80d060c859_h264418000nero_aac32-1.mp4

我模拟http下载得到的视频少了3秒钟,而且视频最后播放有问题。
模拟http下载文件,得到的文件大小ContentLength值与使用wsockexpert监视浏览器下载显示的不一样。
将我下载的文件与浏览器下载的文件对比发现内容多处不一致


这个url会跳转到
http://202.108.17.36/data1/di5jY3R2LmNvbQ--/Zmxhc2g-/bXA0dmlkZW81/VE1T/MjAxMA--/MDk-/MjU-/ZWRkMGYwMDdmNWU1NGQ0NDkzZGY1Yjk2NTI2NDUzOWZfaDI2NDQxODAwMG5lcm9fYWFjMzItMQ--.mp4
浏览器直接使用这个url下载文件得到的大小是错误的(但是这个错误的大小与我的程序获得的大小一致),必须经过第一个url来跳转才能得到正确大小(我的程序无论如何都无法得到正确大小)。

初步觉得是编码问题,可是测试并试验没有成功
求解~~~~~~~~~~~~~~~~~~~~~
...全文
644 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeah2000 2011-09-05
  • 打赏
  • 举报
回复
看看我博客新发的内容,关于采集程序的
http://happyboy200032.blog.163.com/blog/static/46903113201171455453503/
yeah2000 2011-09-05
  • 打赏
  • 举报
回复
下载到了内存中,通过数据流来读出来。然后进行保存处理
number1170196649 2011-09-03
  • 打赏
  • 举报
回复
我正在看一个多线程下载的程序,但是不懂它下载到了什么地方。
threenewbee 2010-12-26
  • 打赏
  • 举报
回复
把你的模拟的请求/响应
和下载程序的请求/响应
放在一起一个字符一个字符仔细看。
yeah2000 2010-12-26
  • 打赏
  • 举报
回复
抓包看了,还是解决不了。该做的都做了,还是不行
threenewbee 2010-12-26
  • 打赏
  • 举报
回复
特别注意302跳转、refer和cookie
threenewbee 2010-12-26
  • 打赏
  • 举报
回复
使用 flidder 抓包看看。
yeah2000 2010-12-26
  • 打赏
  • 举报
回复
自己写就好了,放在多线程里即可
wy811007 2010-12-26
  • 打赏
  • 举报
回复
额 高科技 我也想研究下 LZ发代码来看看。
yeah2000 2010-12-26
  • 打赏
  • 举报
回复
原因找到了
因为这个文件的下载需要跳转,所以我设置了httpWebRequest.AllowAutoRedirect = true;
但是在多线程中,跳转后就会发生获得文件长度不正确。而在UI线程中无问题

还不知道如何在多线程中解决
yeah2000 2010-12-26
  • 打赏
  • 举报
回复
晕倒,我做过采集和自动发布的工具。你说的问题不会出现
wuyq11 2010-12-26
  • 打赏
  • 举报
回复
是否关闭相关操作

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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