简单HTTP断点续传下载的疑问?了解的大神进来瞅瞅。
本帖最后由 a2619308 于 2012-11-25 12:21:27 编辑
最近发问题贴比较多。。。。 嘿嘿。
最近在研究使用wininet实现断点续传。搜了比较多的思路之后,打算先从最简单的尝试开始。思路是:
1、打开文件(如果文件不存在则创建),并读取文件大小。
2、将上面读到的文件的大小作为HTTP头Rang的起始数据获取点。如大小为100,则HTTP头为rang: bytes=99-\r\n
3、检查返回代码,如果是416则表示数据起始位置超出了(这里认为就是之前已经下载完成了)。
4、将读取到的数据写入到文件末尾。当读取数据大小为0时认为下载完成,否则继续。
问题来了:
我用这种方式试了3个文件,一个是mp3文件,一个券是字母的txt,一个全是中文的txt。
发现中文的txt那个在发生中断的地方,下次获取数据的开头会有一部分乱码。本来以为是我文件指针移动的问题,但是我用wfetch查看,发现也是这样子的。图如下:
好了。麻烦清楚原因的大神们,给好好指点下。有没听明白的地方,尽管问。
[最优解释]
你是做下载,又不是做解析,解析的话,要分析文件,看它是什么格式,也就是utf8,unicode什么的。
这种网络包,还是汉字,出现几个乱码很正常。
找个开源浏览器看一下,这部分要比下载复杂多了。这么多年,也就那么几个浏览器,下载器却n多,呵呵呵
[其他解释]
一直也想做个断点续传,一直没做
[其他解释]
我猜測:
文本文件可能也要用二進制的方式讀寫.
[其他解释]
帮顶~同样不懂。
[其他解释]
求指点啊求指点。。 今天小弟生日,可能回复不及时。抱歉啊。。
求指点啊求指点。。
[其他解释]
不带这样的啊。。 来点大神回答下啊!!
[其他解释]