先预告一下,源码会在这几天补全_(:зゝ∠)_
前面提及过断点传输,,若使用普通的方法去读取流的话,是一定会有错误的_(:зゝ∠)_
测试网址:
https://image.baidu.com/n/similar?queryImageUrl=http%3A%2F%2Fe.hiphotos.baidu.com%2Fimage%2Fpic%2Fitem%2F10dfa9ec8a1363272e2522b89b8fa0ec09fac775.jpg&querySign=2286841505,3800276236&word=&querytype=0&t=1501061892165&rn=60&sort=&fr=pc&pn=23
测试代码:
有图有真相
十分令人懵逼的错误_(:зゝ∠)_,若没有进行错误处理的话,一定会在处理错误的方面花费大量时间......得不偿失_(:зゝ∠)_
如何判断是否有断点传输?
万能的F12
响应头中的Accept-Encoding中就声明了gzip,这是一个类似于压缩包的东西,因为不知道要加载多少数量的图片,所以将他们压缩起来减少服务器内存压力是一种常见的做法_(:зゝ∠)_
不推荐在请求头中设置Accept-Encoding,因为没有多少效果,_(:зゝ∠)_,而且说不定还不给你数据了
好了,开始上源码
原理是InputStream读取一个字符串之后得到当前长度,因为断点传输并不是将全部的数据马上放进去,而是一次放部分数据进去,
只要读取到的数据并不是-1的话,available是会返回长度的,或许画个图更清晰
因为read会读取一个字符,所以循环读取并不是从0开始,而是从1开始到结束
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.dbeile.cn/news/1534.html