[求助]http的is.read()最后读不到-1,是为什么?
is = httpConn.openInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while (flag && (ch = is.read()) != -1)
{
bos.write(ch);
}
我限制模拟器的吞吐量为56000
然后在模拟器上读返回的时候
同一个请求
大概有10%的概率,在数据读完的时候最后读不到-1
导致程序堵死在is.read()
非常郁闷
哪位大牛知道怎么解决
谢谢
------解决方案--------------------能catch住什么异常吗? 比如
EOFException
------解决方案--------------------帮顶
------解决方案--------------------帮顶
------解决方案--------------------把你确定他读完的情况后,ch里面的数据打印一下看看
------解决方案-------------------- 关注 是否是链路堵塞
------解决方案--------------------is = httpConn.openInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] data=new byte[512];
int length=0;
do{
length=is.read(data);
bos.write(data);
}while{length>=0};
------解决方案--------------------
呵呵是啊,没遇到过,你可以上真机试试,也许真机完全没事,就不用浪费时间研究这个了,呵呵。