使用universal-image-loader中出现的EOFException解决方法
16lz
2021-01-23
直接贴代码
public class HttpClientImageDownloader extends BaseImageDownloader implementsImageDownloader {public HttpClientImageDownloader(Context context) {super(context);}@Overrideprotected InputStream getStreamFromFile(String imageUri, Object extra)throws IOException {String filePath = Scheme.FILE.crop(imageUri);File file = new File(filePath);if(!file.exists())file.createNewFile();return new ContentLengthInputStream(new BufferedInputStream(new FileInputStream(filePath), BUFFER_SIZE),(int) new File(filePath).length());}@SuppressLint("UseValueOf")@Overrideprotected InputStream getStreamFromNetwork(String imageUri, Object extra)throws IOException {//HttpURLConnection conn = createConnection(imageUri, extra);////int redirectCount = 0;//while (conn.getResponseCode() / 100 == 3 && redirectCount < MAX_REDIRECT_COUNT) {//conn = createConnection(conn.getHeaderField("Location"), extra);//redirectCount++;//}//EOFException来自conn.getResponseCode()//InputStream imageStream;//try {//imageStream = conn.getInputStream();//} catch (IOException e) {//// Read all data to allow reuse connection (http://bit.ly/1ad35PY)//IoUtils.readAndCloseStream(conn.getErrorStream());//throw e;//}DefaultHttpClient client = new DefaultHttpClient();HttpGet request = new HttpGet(imageUri);request.getParams().setParameter("http.socket.timeout",new Integer(connectTimeout));request.addHeader("Pragma", "no-cache");request.addHeader("Cache-Control", "no-cache");request.addHeader("Charset", "UTF-8");HttpResponse httpResponse = client.execute(request);HttpEntity entity = httpResponse.getEntity();InputStream imageStream = entity.getContent();return new ContentLengthInputStream(new BufferedInputStream(imageStream, BUFFER_SIZE), (int)entity.getContentLength());}}
另外配置为自己的imageloader ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).defaultDisplayImageOptions(defaultOptions).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory().threadPoolSize(3).imageDownloader(new HttpClientImageDownloader(this )).tasksProcessingOrder(QueueProcessingType.LIFO).memoryCache(new WeakMemoryCache()).build();
更多相关文章
- Android弹出对话框简单代码
- Android 中保存图片的代码
- Android 代码生成界面Sample
- Android 代码监控apk安装,卸载,替换
- android 代码创建快捷方式
- Android开发人员不得不收集的代码
- Android 实现SHA1加密算法代码