Volley附件上传报java.io.EOFException异常但附件成功上传
Volley本身不支持附件上传的,但可以很容易扩展一个Request,主要实现getBody()方法,由于getBody()方法返回值是byte[],所以这也决定了这个上传的方法只适合小文件上传。
最近发现一个问题,上传完报一个异常:java.io.EOFException,但服务器完整接收了,文件已成功上传。网上搜了半天,很多人说了一些问题。后来我仔细查找代码,找到了原因:httpURLConnection里加了:If-None-Match和If-Modified-Since两个属性导致,因为Volley的Request默认都是支持缓存的,所以就自动添加这两个属性。
解决方法:upLoadRequest.setShouldCache(false),设置Request的setShouldCache(false)即可。