标签:android universal-image-load eofexception
直接贴代码
public class HttpClientImageDownloader extends BaseImageDownloader implements ImageDownloader { public HttpClientImageDownloader(Context context) { super(context); } @Override protected 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") @Override protected 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++; // }<span style="font-family: Arial, Helvetica, sans-serif;">//EOFException来自conn.getResponseCode()</span> // 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();
使用universal-image-loader中出现的EOFException解决方法
标签:android universal-image-load eofexception
原文地址:http://blog.csdn.net/leibinleibin/article/details/41721461