java/android http数据缓存
2015-09-11 18:24
423 查看
import java.util.HashMap; import java.util.Map; public class BasicCache { private Map<String, String> cache = new HashMap<String, String>(); private static BasicCache bc; private BasicCache() { } public static BasicCache getInstance() { if (null == bc) { bc = new BasicCache(); } return bc; } /** * 根据url从缓存中取数据 * * @param key * @return */ public String getValue(String key) { String value = cache.get(key); if (null == value) { Tools tools = new Tools(); String result = tools.getUrl(key, 10000); if (null != result && !"".equals(result)) { cache.put(key, result); } return result; } else { return value; } } /** * 清空缓存 */ public void clearCache() { cache.clear(); } // http://my.oschina.net/xiahuawuyu/blog/92083 // http://blog.csdn.net/earbao/article/details/48376143 //差个有效期自动销毁 java/android http数据缓存 public static void main(String[] args) { String url = "http://www.baidu.com/"; for (int i = 0; i < 10; i++) { long start = System.currentTimeMillis(); String result = BasicCache.getInstance().getValue(url); System.out.println(result); long end = System.currentTimeMillis(); System.out.println(end - start + " ms"); } } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; //请求类 public class Tools { public String getUrl(String urls, int overtime) { StringBuffer result = new StringBuffer(); URL url = null; try { url = new URL(urls); if (url == null) { System.out.println("读取url地址失败"); return null; } HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestMethod("GET"); conn.setConnectTimeout(overtime); conn.setReadTimeout(overtime); conn.connect(); int code = conn.getResponseCode(); if (code != 200) { System.out.println("服务器返回错误的状态码:" + code); } else { BufferedReader br = new BufferedReader(new InputStreamReader( conn.getInputStream(), "utf-8")); String temp = null; while ((temp = br.readLine()) != null) { result.append(temp); } } } catch (IOException e) { System.out.println("error:\n" + e.getMessage()); return null; } return result.toString(); } }
相关文章推荐
- DNS的工作原理及过程分下面几个步骤
- 【论坛】网络与通信大板上线公告
- Web应用与Web应用防火墙之网络安全产品追述
- python网络爬虫抓取动态网页并将数据存入数据库MySQL
- Android网络通信请求框架—Android-async-http
- web.config connectionStrings 数据库连接字符串的解释(转载) http://www.cnblogs.com/weichao975/archive/2010/07/11/1
- WAPG1 真机模拟慢速网络
- Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
- Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
- Hi,我们分手吧!:-( 记TCP的四次挥手(顿悟)
- Hi~ o(* ̄▽ ̄*)ブ我们交往吧!记TCP的三次握手
- 黑马程序员_java10_网络编程
- 腾讯应用宝(道具直购模式)支付经验总结
- DNS工作原理及其过程
- ios 关于使用异步网络请求时block回调的内存注意
- Linux中TCP连接过程状态简介
- CS中网络相关的期刊及会议
- CentOS搭建本地yum源(http方式)
- webim如何使用http长轮询保证消息的绝对实时性
- HTTP协议是无状态协议无链接,怎么理解?