登录
首页 » Java » ApiDemo

ApiDemo

于 2011-06-21 发布 文件大小:4753KB
0 221
下载积分: 1 下载次数: 65

代码说明:

  android ApiDemo 包含各种各样的用法(android ApiDemo)

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Android
    Android 开发资料,包括所有的Android 开发API(Android api develop)
    2015-10-06 19:41:13下载
    积分:1
  • 微信公众平台开发模式(JAVA) SDK/微信app
    【核心代码】package com.gson;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Date;import java.util.Properties;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.gson.bean.Articles;import com.gson.bean.InMessage;import com.gson.bean.OutMessage;import com.gson.bean.TextOutMessage;import com.gson.inf.MessageProcessingHandler;import com.gson.util.Tools;import com.gson.util.XStreamFactory;import com.thoughtworks.xstream.XStream;/** * 请求拦截 * * @author GodSon * */public class WeChatFilter implements Filter { private final Logger logger = Logger.getLogger(WeChatFilter.class); private String _token; private String conf = "classPath:wechat.properties"; private String defaultHandler = "com.gson.inf.DefaultMessageProcessingHandlerImpl"; private Properties p; @Override public void destroy() { logger.info("WeChatFilter已经销毁"); } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; Boolean isGet = request.getMethod().equals("GET"); String path = request.getServletPath(); String pathInfo = path.substring(path.lastIndexOf("/")); if (pathInfo == null) { response.getWriter().write("error"); } else { _token = pathInfo.substring(1); if (isGet) { doGet(request, response); } else { doPost(request, response); } } } private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/xml"); OutMessage oms = new OutMessage(); ServletInputStream in = request.getInputStream(); // 转换微信post过来的xml内容 XStream xs = XStreamFactory.init(false); xs.alias("xml", InMessage.class); String xmlMsg = Tools.inputStream2String(in); logger.debug("输入消息:[" xmlMsg "]"); InMessage msg = (InMessage) xs.fromXML(xmlMsg); // 获取自定消息处理器,如果自定义处理器则使用默认处理器。 String handler = p.getProperty("MessageProcessingHandlerImpl"); if (handler == null) handler = defaultHandler; try { // 加载处理器 Class clazz = Class.forName(handler); MessageProcessingHandler processingHandler = (MessageProcessingHandler) clazz.newInstance(); // 取得消息类型 String type = msg.getMsgType(); Method mt = clazz.getMethod(type "TypeMsg", InMessage.class); oms = (OutMessage) mt.invoke(processingHandler, msg); if (oms == null) { oms = new TextOutMessage(); ((TextOutMessage) oms).setContent("系统错误!"); } setMsgInfo(oms,msg); } catch (Exception e) { logger.error(e); oms = new TextOutMessage(); ((TextOutMessage) oms).setContent("系统错误!"); try { setMsgInfo(oms,msg); } catch (Exception e1) { logger.error(e); } } // 把发送发送对象转换为xml输出 xs = XStreamFactory.init(true); xs.alias("xml", oms.getClass()); xs.alias("item", Articles.class); String xml = xs.toXML(oms); logger.debug("输出消息:[" xml "]"); response.getWriter().write(xml); } private void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { String signature = request.getParameter("signature");// 微信加密签名 String timestamp = request.getParameter("timestamp");// 时间戳 String nonce = request.getParameter("nonce");// 随机数 String echostr = request.getParameter("echostr");// // 验证 if (Tools.checkSignature(_token, signature, timestamp, nonce)) { response.getWriter().write(echostr); } } private void setMsgInfo(OutMessage oms,InMessage msg) throws Exception { // 设置发送信息 Class outMsg = oms.getClass().getSuperclass(); Field CreateTime = outMsg.getDeclaredField("CreateTime"); Field ToUserName = outMsg.getDeclaredField("ToUserName"); Field FromUserName = outMsg.getDeclaredField("FromUserName"); ToUserName.setAccessible(true); CreateTime.setAccessible(true); FromUserName.setAccessible(true); CreateTime.set(oms, new Date().getTime()); ToUserName.set(oms, msg.getFromUserName()); FromUserName.set(oms, msg.getToUserName()); } /** * 启动的时候加载wechat.properties配置 可以在过滤器配置wechat.properties路径 */ @Override public void init(FilterConfig config) throws ServletException { String cf = config.getInitParameter("conf"); if (cf != null) { conf = cf; } String classPath = this.getClass().getResource("/").getPath().replaceAll("%20", " "); conf = conf.replace("classPath:", classPath); p = new Properties(); File pfile = new File(conf); if (pfile.exists()) { try { p.load(new FileInputStream(pfile)); } catch (FileNotFoundException e) { logger.error("未找到wechat.properties", e); } catch (IOException e) { logger.error("wechat.properties读取异常", e); } } logger.info("WeChatFilter已经启动!"); }}
    2014-01-21下载
    积分:1
  • SSM蔬菜水果商城(含数据库脚本)
    该项目采用的技术为Spring SpringMVC mybatis maven mysql,包含了常规商城项目的所有模块:用户模块、商品模块、商品分类模块、购物车模块、订单模块、公告模块、留言评价模块、管理员模块。非常适合出入职场的同学学习或者面试
    2020-12-04下载
    积分:1
  • 语音识别器
    主要包,包含所有在用Java API这里是类,结构,工会和与简要说明
    2022-04-16 12:53:52下载
    积分:1
  • 图形面积计算
    用于java初学者进行学习,通过类的继承和多态来了解不同图形间面积的求法以及其相应的联系。
    2022-11-25 14:35:03下载
    积分:1
  • Android智能穿戴设备开发指南
    说明:  安卓智能可穿戴设备,例如苹果智能手表、谷歌眼镜等等(Android smart wearable devices, such as apple smart watch, Google glasses, etc)
    2020-06-21 16:31:29下载
    积分:1
  • Android Studio的待办事项列表的例子
    应用背景包de.vogella.android.todos;进口android.app.listactivity;进口android.app.loadermanager;进口android.content.cursorloader;进口android.content.intent;进口android.content.loader;进口android.database.cursor;进口android.net.uri;进口android.os.bundle;进口android.view.contextmenu;进口android.view.contextmenu.contextmenuinfo;进口android.view.menu;进口android.view.menuinflater;进口android.view.menuitem;进口android.view.view;进口android.widget.adapterview.adaptercontextmenuinfo;进口android.widget.listview;进口android.widget.simplecursoradapter;进口de.vogella.android.todos.contentprovider.mytodocontentprovider;进口de.vogella.android.todos.database.todotable;关键技术/ * ;* todosoverviewactivity显示现有全部项目*在一个列表中和,* &; ;*你可以创建新的通过ActionBar进入“插入” ;*您可以删除操作
    2022-12-22 06:00:03下载
    积分:1
  • android 上传视频文件实例,含服务器源码下载
    android 上传视频文件实例,含服务器源码下载
    2013-07-18下载
    积分:1
  • 企业人事管理系统
    资源描述 提供的SQL为mysql可以直接使用的,使用工具自动生成,可能存在多个逗号的现象,如报错,请自查。 提供的PDM为Oracle9I。 程序经过调试,可正常运行。 如有问题请留言联系。 根据企业对人事管理的要求,本系统需要实现以下目标: l 操作简单方便、界面简洁大方。 l 方便快捷的档案管理。 l 简单适用的考勤和奖惩管理。 l 简单适用的培训管理。 l 针对企业中不同的待遇标准,实现待遇账套管理。 l 简单明了的账套维护功能。
    2022-03-19 15:58:59下载
    积分:1
  • android通用开发UI框架(选项卡)
        是一个非常简单,快捷的选项卡框架
    2015-06-23下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载