使用universal-image-loader中出现的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();
时间: 2024-11-13 08:13:57

使用universal-image-loader中出现的EOFException解决方法的相关文章

项目记录:spring+springmvc 项目中 @Transactional 失效的解决方法

第一步,修改spring的配置文件和springmvc的配置文件 --------------------------------applicationContext.xml <context:annotation-config/>  <context:component-scan base-package="com.xxx"> <context:exclude-filter type="annotation" expression=&

CUDA程序编译过程中产生警告的解决方法

有时候经常使用别人用Tabhost+其它的实现demo.单纯利用Tabhost该如何使用呢? 下面看例子: public class MainActivity extends TabActivity { public TabHost tabHost; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 获取对象 tabHost = getTabH

Ubuntu 14.04中root 密码忘记解决方法[转载+17.04亲测可用]

Ubuntu 14.04中root 密码忘记解决方法 Ubuntu 14.04中root 密码忘记解决方法 方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo passwd root命令就可以直接更改root密码. 有关sudo su的区别: 1.共同点:都是root用户的权限: 2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全取得root的权限和root的工

phpcms v9 中 PHPSSO无法通讯解决方法(PHPSSO无法通讯间接影响phpcms v9注册会员无法通过“重名无法通过”)

问题的由来 怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代码,添加我们的层.精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如何渲染界面的 ~~~ 两个入口 程序入口的概念是相对的,AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同

Mac 下 Terminal 中 Java乱码的解决方法

在 .bash_profile 中增加一行 export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 就可以了. Mac 下 Terminal 中 Java乱码的解决方法,布布扣,bubuko.com

PowerShell因为在此系统中禁止执行脚本解决方法

PowerShell因为在此系统中禁止执行脚本解决方法 在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing". 所在位置 行:1 字符: 17 + E:\Test\test.ps1 <<<<     + CategoryInfo          : NotSpecified: (:) [], PSSecurityException    

【转】eclipse中window-&gt;preference选项中没有tomcat的解决方法

eclipse中window->preference选项中没有tomcat的解决方法 2011-09-09 13:46:35|  分类: eclipse|字号 订阅 其实一共有好几种方法,这只是其中的一种:建立link文件法 将下载的tomcat包解压缩到任何你能找到的目录中,也可以解压缩到eclipse下的plugins文件夹下,然后在eclipse目录下建立links文件夹,记住是links,不是link,不要把s掉了,建立好后,在该文件夹下新建一个文件,因为这里是tomcat插件,所以名字

Web.Config中使用特殊字符出错解决方法

程序代码 <appSettings>    <add key="URL" value="http://www.mzwu.com/?id=1&keyword=abc"/></appSettings> 运行出错,提示:分析 EntityName 时出错.原因是value中含有特殊字符"&",解决方法使用其对应的ASCII码"& #38;"替换即可: <appSett

SQL Sever 2008配置工具中过程调用失败解决方法

刚刚装了VS2013,然后打开数据库时,无论如何也连不上.打开数据库配置,出现如下界面: 上网搜了,试了很多方法,像什么把windows\system32\wbem下的framedyn.dll复制到system32目录下,还有照一个老外说的,下什么更新补丁,都没用!! 想重装SQL2008,结果运行安装程序,变成了英文版(以前装显示的是中文的),而且安装根目录选不了!巨想死! 万念俱灰下,打开360,卸载了一个叫"Microsoft SQL Server 2012LocalDB",重新