最近在做索爱手机(W715、W595)的移植工作时,出现了一个很怪异的现象。就是http联网时发生IOException,将详细信息输出发现是java.lang.IOException:80000019。
在详细对照和反复查找之后,最后确认是这里出现的错误:
其中conn是HttpConnection,last是一个字节数组。
这样的代码首次执行后,没有报出错误。但是在服务器端会收到多余的字节(比如上传100字节,但是实际服务器收到1000字节),并且多余的字节全部是0。当多次执行之后,手机就报出IOException了。
具体的修改方式是:去掉flush,改成
总结:同样的代码,在Nokia、Moto等品牌的手机上执行正常,但是在SonyEricsson手机上有这样的错误。肯定是因为这些手机在底层函数的实现上有区别。个人怀疑是索爱手机的close函数中,在执行close之前,会自动调用一下flush。不知道不是不这样的,如果大家有谁熟悉索爱的接口,请告诉我。
希望这篇文章对大家有所帮助。