Java的微信开发中使用XML格式和JSON格式数据的示例

 更新时间:2016年02月28日 16:00:45   作者:明天以后  
这篇文章主要介绍了Java微信开发中使用XML格式和JSON格式数据的示例,注意一下json-lib所需要的jar包,需要的朋友可以参考下

XML
微信XML消息model定义:

package cn.wx.server;
 
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
 
/**
 * @title cn.wx.serverXMLMsg.java
 * @todo TODO
 * @author lpe234
 * @time 2014年5月21日下午2:13:27
 */
public class XMLMsg {
//普通消息基本变量
 String ToUserName;
 String FromUserName;
 String CreateTime;
 String MsgType;
 String Content;
 String MsgId;
//事件推送变量
 String Event;
//自定义菜单项
 String EventKey;
  
 
 public String getEventKey() {
  return EventKey;
 }
 
 public void setEventKey(String eventKey) {
  EventKey = eventKey;
 }
 
 public XMLMsg(String str) throws DocumentException {
  Document doc = DocumentHelper.parseText(str);
  Element root = doc.getRootElement();
  this.ToUserName = root.elementText("ToUserName");
  this.FromUserName = root.elementText("FromUserName");
  this.CreateTime = root.elementText("CreateTime");
  this.MsgType = root.elementText("MsgType");
  this.Content = root.elementText("Content");
  this.MsgId = root.elementText("MsgId");
   
  this.Event = root.elementText("Event");
  this.EventKey = root.elementText("EventKey");
 }
 
 public String getEvent() {
  return Event;
 }
 
 public void setEvent(String event) {
  Event = event;
 }
 
 public String getToUserName() {
  return ToUserName;
 }
 
 public void setToUserName(String toUserName) {
  ToUserName = toUserName;
 }
 
 public String getFromUserName() {
  return FromUserName;
 }
 
 public void setFromUserName(String fromUserName) {
  FromUserName = fromUserName;
 }
 
 public String getCreateTime() {
  return CreateTime;
 }
 
 public void setCreateTime(String createTime) {
  CreateTime = createTime;
 }
 
 public String getMsgType() {
  return MsgType;
 }
 
 public void setMsgType(String msgType) {
  MsgType = msgType;
 }
 
 public String getContent() {
  return Content;
 }
 
 public void setContent(String content) {
  Content = content;
 }
 
 public String getMsgId() {
  return MsgId;
 }
 
 public void setMsgId(String msgId) {
  MsgId = msgId;
 }
}


JSON
这里我们使用json-lib,注意一下需要以下几个jar包的支持:

  • json-lib-2.4-jdk15.jar
  • commons-logging-1.1.3.jar
  • ezmorph-1.0.6.jar
  • commons-lang-2.4.jar
  • commons-collections.jar
  • commons-beanutils-1.8.0.jar

以下是简单的AccessToken类,返回String类型的access_token

package cn.wx.server;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
 
import net.sf.json.JSONObject;
 
public class AccessToken {
 
 /**
  * 根据注册信息,获得的参数,提交get请求,获得accessTkoen
  * @author lpe234
  * @time 2014-5-21 00:52:15
  */
 String appID = "XXXXXXXXXXXXXX";
 String appsecret = "XXXXXXXXXXXXXXXXX";//微信服务号或者申请测试账号的订阅号才有。。。
 String preUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";
 String tempUrl = String.format(preUrl, appID, appsecret);
/** 测试
* public static void main(String[] args) {
*  AccessToken as = new AccessToken();
*  System.out.println(as.get());
* }
*/
 //返回String类型access_token
 public String get() {
  String temp = null;
  temp = getJSON();
  JSONObject j = JSONObject.fromObject(temp);
  temp = j.getString("access_token");
  //System.out.println(temp);
  return temp;
 }
 
 // 获取wx服务器返回JSON数据,private内部调用
 private String getJSON() {
  String temp = null;
  try {
   URL url = new URL(tempUrl);
   URLConnection conn = url.openConnection();
   InputStreamReader isr = new InputStreamReader(conn.getInputStream());
   BufferedReader br = new BufferedReader(isr);
   temp = br.readLine();
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  //System.out.println(temp);
  return temp;
 }
}

额 大体就是这样

相关文章

  • Springboot打成war包并在tomcat中运行的部署方法

    Springboot打成war包并在tomcat中运行的部署方法

    这篇文章主要介绍了Springboot打成war包并在tomcat中运行,在文中还给大家介绍了SpringBoot war包tomcat运行启动报错(Cannot determine embedded database driver class for database type NONE)的解决方法,需要的朋友可以参考下
    2018-01-01
  • JavaWeb使用Session和Cookie实现登录认证

    JavaWeb使用Session和Cookie实现登录认证

    本篇文章主要介绍了JavaWeb使用Session和Cookie实现登录认证,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Java实现监听UDP协议的指定端口并收到数据按照十六进制输出方式

    Java实现监听UDP协议的指定端口并收到数据按照十六进制输出方式

    这篇文章主要介绍了Java实现监听UDP协议的指定端口并收到数据按照十六进制输出方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Java 详细讲解线程安全与同步附实例与注释

    Java 详细讲解线程安全与同步附实例与注释

    线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况
    2022-04-04
  • SpringMVC中@controllerAdvice注解的详细解释

    SpringMVC中@controllerAdvice注解的详细解释

    刚接触SpringMVC应该很少会见到这个注解,其实它的作用非常大,下面这篇文章主要给大家介绍了关于SpringMVC中@controllerAdvice注解的相关资料,需要的朋友可以参考下
    2022-02-02
  • SpringBoot集成JWT令牌详细说明

    SpringBoot集成JWT令牌详细说明

    这篇文章主要介绍了SpringBoot集成JWT令牌详细说明,JWT方式校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录,验证token更为简单,需要的朋友可以参考下
    2023-10-10
  • 用Java实现一个简单的布隆过滤器

    用Java实现一个简单的布隆过滤器

    这篇文章主要介绍了用Java实现一个简单的布隆过滤器,布隆过滤器是1970年由布隆提出的,它实际上是一个很长的二进制向量和一系列随机映射函数,布隆过滤器可以用于检索一个元素是否在一个集合中,需要的朋友可以参考下
    2023-12-12
  • 详解JAVA中的Collection接口和其主要实现的类

    详解JAVA中的Collection接口和其主要实现的类

    这篇文章主要介绍了JAVA中的Collection接口和其主要实现的类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 详解JUnit5参数化测试的几种方式

    详解JUnit5参数化测试的几种方式

    参数化测试一直是津津乐道的话题,我们都知道JMeter有四种参数化方式:用户自定义变量、用户参数、CSV文件、函数助手,那么JUnit5有哪些参数化测试的方式呢
    2021-07-07
  • springboot返回图片流的实现示例

    springboot返回图片流的实现示例

    本文主要介绍了springboot返回图片流的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论