package util; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import javax.servlet.ServletContext; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; import com.alibaba.fastjson.JSON; import com.caucho.hessian.client.HessianProxyFactory; public class XUtil { static Logger log = Logger.getLogger(XUtil.class); static Properties prop = new Properties(); static { try { InputStream is = XUtil.class.getClassLoader().getResourceAsStream("services.properties"); prop.load(is); } catch (IOException e) { e.printStackTrace(); } } public static Object call(String sid, Object... params) { HessianProxyFactory factory = new MyHessianProxyFactory(); Object result = null; try { factory.setHessian2Reply(true); factory.setChunkedPost(false); Call caller = (Call) factory.create(Call.class, prop.getProperty("url")); result = caller.call(sid, params); } catch (Exception e) { log.debug(e.getCause().getMessage()); } return result; } public static Object call2(String sid, Object... args) { String url = "http://localhost:8080/ss/handler"; String result = null; ThreadSafeClientConnManager threadSafeClientConnManager = new ThreadSafeClientConnManager(); HttpClient client = new DefaultHttpClient(threadSafeClientConnManager); client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 3000); client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000); try { HttpPost post = new HttpPost(url); post.addHeader("api", sid); post.addHeader("username", ((Map<String, Object>) getUser()).get("username").toString()); System.out.println(JSON.toJSONString(args)); StringEntity s = new StringEntity(JSON.toJSONString(args), "UTF-8"); s.setContentType("application/json"); post.setEntity(s); HttpResponse res = client.execute(post); HttpEntity entity = res.getEntity(); if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { result = EntityUtils.toString(entity); } if (res.getStatusLine().getStatusCode() == HttpStatus.SC_NOT_FOUND) { throw new RuntimeException("请求未发现"); } if (res.getStatusLine().getStatusCode() == 9999) { String kk = EntityUtils.toString(entity); throw new RuntimeException(kk); } } catch (Exception e) { throw new RuntimeException(e.getMessage()); } finally { client.getConnectionManager().shutdown(); } return result; } public static void calljson(String sid, Object... args) { toJSON(call(sid, args)); } public static void call2json(String sid, Object... args) { toJSON(call2(sid, args)); } public static void toJSON(Object obj) { RequestContext.getResponse().setContentType("text/javascript;charset=UTF-8"); try { RequestContext.getResponse().getWriter().print(JSON.toJSONString(obj)); } catch (Exception e) { e.printStackTrace(); } } public static Map<String, Object> getParameterMap() { Map<String, Object> map = new HashMap<String, Object>(); Enumeration<?> em = RequestContext.getRequest().getParameterNames(); while (em.hasMoreElements()) { String k = (String) em.nextElement(); String v = RequestContext.getRequest().getParameter(k); map.put(k, v); } return map; } public static String getParameter(String name) { return RequestContext.getRequest().getParameter(name); } public static Object getUser() { return RequestContext.getSession().getAttribute("user"); } public static String getIP() { return RequestContext.getRequest().getRemoteAddr(); } @SuppressWarnings("unchecked") public static List<Map<String, Object>> toList(String str) { List<Map<String, Object>> data = null; try { data = (List<Map<String, Object>>) JSON.parseObject(str, List.class); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e.getCause()); } return data; } public static void ok() { Map<String, Object> result = new HashMap<String, Object>(); result.put("success", true); result.put("msg", null); toJSON(result); } public static void ok(String msg, Object... args) { // ResourceBundle rb = ResourceBundle.getBundle("resource", Locale.getDefault(), RequestContext.class // .getClassLoader()); // String msg = rb.getString(code); // msg = (msg != null) ? MessageFormat.format(msg, args) : code; Map<String, Object> result = new HashMap<String, Object>(); result.put("success", true); result.put("msg", msg); try { RequestContext.getResponse().getWriter().write(JSON.toJSONString(result)); } catch (Exception e) { e.printStackTrace(); } } public static void error(String msg, Object... args) { // ResourceBundle rb = ResourceBundle.getBundle("resource", Locale.getDefault(), RequestContext.class // .getClassLoader()); // String msg = rb.getString(code); // msg = (msg != null) ? MessageFormat.format(msg, args) : code; Map<String, Object> result = new HashMap<String, Object>(); result.put("success", false); result.put("msg", msg); try { RequestContext.getResponse().getWriter().write(JSON.toJSONString(result)); } catch (Exception e) { e.printStackTrace(); } } public static void attr(String key, Object value, String scope) { if ("application".equals(scope)) { RequestContext.getServletContext().setAttribute(key, value); } else if ("session".equals(scope)) { RequestContext.getSession().setAttribute(key, value); } else { RequestContext.getRequest().setAttribute(key, value); } } public static Object attr(String key, String scope) { if ("application".equals(scope)) { return RequestContext.getServletContext().getAttribute(key); } else if ("session".equals(scope)) { return RequestContext.getSession().getAttribute(key); } else { return RequestContext.getRequest().getAttribute(key); } } public static void redirect(String url) { RequestContext.redirect(url); } public static void forward(String url) { RequestContext.forward(url); } public static void invalidate() { RequestContext.invalidate(); } public static OutputStream getOutputStream() { try { return RequestContext.getResponse().getOutputStream(); } catch (IOException e) { e.printStackTrace(); } return null; } public static ServletContext getServletContext(){ return RequestContext.getServletContext(); } } interface Call { public Object call(String sid, Object... args); }
相关推荐
《XUtil下载库实战指南——环形进度条下载体验》 在现代的移动应用开发中,文件下载功能是不可或缺的一部分,而XUtil下载库提供了一种高效、便捷的方式来实现这一功能。本文将深入探讨如何使用XUtil进行文件下载,...
在Android开发中,Fragment是应用界面中不可或缺的一部分,它允许我们构建模块化的用户界面,而XUtil则是一个功能丰富的开源库,特别适用于处理图片的加载、缓存等任务。本篇将深入探讨Fragment切换时可能出现的卡顿...
**Android xUtil 框架详解** Android xUtil是一个针对Android平台开发的工具库,它为开发者提供了便捷的网络请求和文件下载功能。这个框架旨在简化Android应用中的常见任务,提高开发效率,让开发者能够更专注于...
XUtil是一款广泛应用于Android开发中的轻量级框架,它的出现是为了全面替代原有的afinal框架。XUtil由知名Android开发者xueying创建,旨在提供一套高效、便捷的Android开发工具集,帮助开发者快速、稳定地进行应用...
本资源"安卓日志分析崩溃拦截相关-提取xutil的logutil轻量高效.rar"似乎提供了一种轻量级且高效的日志工具——xutil的logutil,它可能包含了用于日志记录、分析以及异常处理的代码。 首先,我们来详细了解一下日志...
【xutil安卓框架教程】 xutil是一个专门为Android开发者设计的框架,它旨在简化常见的开发任务,提高开发效率。本教程将深入探讨xutil的核心特性,包括自动findviewByid、自动事件处理、文件的自动下载与上传以及...
"提取xutil的logutil轻量高效"这一标题表明,我们关注的是一个名为"xutil"的工具库中关于日志处理的部分,即"logutil"。这个工具类提供了轻量级且高效的日志打印功能,使得开发者可以在不增加过多性能负担的情况下,...
标题中的"mina, XUtil, sliding多个框架demo"提到了三个关键的开发框架:Mina、XUtil和滑动菜单(通常指的是SlidingMenu库)。这些框架在Android应用开发中有着重要的作用,下面将分别详细介绍这三个框架以及它们的...
自动findviwByid 自动事件 自动下载图片,自动缓存,自动上传文件 非常的好 这个是教程
【XUtil开源库】是一个在Git平台上活跃的开源项目,其主要目的是为了简化Android开发者在实际开发中的工作,特别是针对图像处理和网络请求这两部分。这个库提供了高效、易用的API,使得开发者能够更专注于业务逻辑,...
**Xutil 开源库详解** Xutil 是一个广泛使用的开源工具库,主要针对 Android 平台,由国内开发者精心打造。这个库集成了多种实用功能,旨在简化 Android 应用程序的开发工作,提高开发效率。Xutil 的设计目标是模块...
该TemplateAppProject是一个基于XUI、XUtil、XAOP等框架构建的Android模版空壳工程,包含172个文件,涵盖68个Java源文件、64个XML配置文件、17个PNG图片文件、6个Gradle脚本文件、2个YAML配置文件、2个Git忽略文件、...
Xutil框架源码最新版本 xUtils 包含了很多实用的android工具。 xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(7种谓词),拥有更加灵活的ORM,更多的事件注解...
基于Android Studio 1.5,在xUtils3.0官方Demo的基础上集成SQLCipher3.4.0,对数据库加密操作。 xUtils3.0 gitHub地址: https://github.com/DongDongZ/XUtils3.0 SQLCipher3.4.0 github地址:...
自定义图片自动轮播控件,自定轮播指示器样式,支持点击,无限轮播,网络下载图片可是使用XUtil的BitmapUtils也可是使用smart-image-view加载图片,支持轮播文字切换此插件是基于viewpager实现的,需要导入android-...
在IT行业中,网络通信是应用程序之间交互的重要方式,而...此外,了解Xutil库的其他功能,如数据解析、网络状态检测等,也能增强你在实际项目中的应用能力。最后,别忘了实际运行并调试代码,通过实践来巩固理论知识。
XUtil Android的通用util lib 通用类实用程序 ClickUtil:多次点击事件 活动管理器 FileUtil HideSoftInputUtil 首选项实用程序 传感器控制器 StringUtil 系统实用程序 TextViewUtil StatusBarUtil ...
本资源主要关注的是Android平台上的框架学习,包括OkHttp、Volley和XUtil。这些框架分别在网络请求、数据加载和UI处理方面有着独特的优势,对于Android开发者来说,理解和掌握它们能够提升开发效率并改善应用性能。 ...
该项目提供一款基于Java的Android简化版空壳模板源码,包含57个文件,涵盖14个XML布局文件、14...该模板集成了XUI、XUtil、XAOP、XPage等常用库,并支持友盟统计和Walle多渠道打包功能,旨在快速搭建Android应用项目。
针对这些问题,我们可以采用缓存机制和第三方库如xutil来优化图片加载,提升用户体验。 首先,我们要理解ListView的复用机制。当ListView滚动时,为了提高性能,已经滑出屏幕的item会被重新利用来显示新的内容。...