微信公众平台深度开发JAVA版第一季 11.接收普通消息4

勤奋的态度和过程.

170455_1eGR_3206447.png

腾讯官方开发文档有错,是MsgId而不是MsgID.

package wx.in;

public class In_Voice {
	private String ToUserName =null;//	开发者微信号
	private String FromUserName =null;//	发送方帐号(一个OpenID)
	private String CreateTime=null;//	消息创建时间 (整型)
	private String MsgType=null;//	语音为voice
	private String MediaId	=null;//语音消息媒体id,可以调用多媒体文件下载接口拉取数据。
	private String Format	=null;//语音格式,如amr,speex等
	private String MsgId	=null;//消息id,64位整型
	
	
	
	
	
	public In_Voice() {
		super();
	}
	public In_Voice(String requestStr) {
		super();
		this.setToUserName(In_Util.getStrByXML(requestStr,"ToUserName"));
		this.setFromUserName(In_Util.getStrByXML(requestStr,"FromUserName"));
		this.setCreateTime(In_Util.getStrByXML(requestStr,"CreateTime"));
		this.setMsgType(In_Util.getStrByXML(requestStr,"MsgType"));
		this.setMediaId(In_Util.getStrByXML(requestStr,"MediaId"));
		this.setFormat(In_Util.getStrByXML(requestStr,"Format"));
		this.setMsgId(In_Util.getStrByXML(requestStr,"MsgId"));
	}
	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 getMediaId() {
		return MediaId;
	}
	public void setMediaId(String mediaId) {
		MediaId = mediaId;
	}
	public String getFormat() {
		return Format;
	}
	public void setFormat(String format) {
		Format = format;
	}
	public String getMsgId() {
		return MsgId;
	}
	public void setMsgId(String msgId) {
		MsgId = msgId;
	}
	
}
package wx.in;

public class In_Video {
	private String ToUserName =null;//	开发者微信号
	private String FromUserName =null;//	发送方帐号(一个OpenID)
	private String CreateTime =null;//	消息创建时间 (整型)
	private String MsgType =null;//	视频为video
	private String MediaId =null;;//	视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
	private String ThumbMediaId	=null;//视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
	private String MsgId	=null;//消息id,64位整型
	
	
	
	public In_Video() {
		super();
	}
	public In_Video(String requestStr) {
		super();
		this.setToUserName(In_Util.getStrByXML(requestStr,"ToUserName"));
		this.setFromUserName(In_Util.getStrByXML(requestStr,"FromUserName"));
		this.setCreateTime(In_Util.getStrByXML(requestStr,"CreateTime"));
		this.setMsgType(In_Util.getStrByXML(requestStr,"MsgType"));
		this.setMediaId(In_Util.getStrByXML(requestStr,"MediaId"));
		this.setThumbMediaId(In_Util.getStrByXML(requestStr,"ThumbMediaId"));
		this.setMsgId(In_Util.getStrByXML(requestStr,"MsgId"));
	}
	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 getMediaId() {
		return MediaId;
	}
	public void setMediaId(String mediaId) {
		MediaId = mediaId;
	}
	public String getThumbMediaId() {
		return ThumbMediaId;
	}
	public void setThumbMediaId(String thumbMediaId) {
		ThumbMediaId = thumbMediaId;
	}
	public String getMsgId() {
		return MsgId;
	}
	public void setMsgId(String msgId) {
		MsgId = msgId;
	}
	
}
package wx.in;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;

public class In_Util {
   
    /**
     * 通过request得到请求流中的微信报文str
     * @param request
     * @return
     */

	 
	 
       
	public static String getStringFromRequest(HttpServletRequest request){
		StringBuffer strb = new StringBuffer();
		//strb要存储一下request获取过来的东西
		ServletInputStream in;
		try {
			in = request.getInputStream();
	

		BufferedReader breader =  new BufferedReader( new InputStreamReader(in,"UTF-8"));//接收是对的,已经进行转码了.
		String str = null;
		//+-*/是运算符,赋值运算符=也是运算符
		while(null!=(str = breader.readLine())){
			 strb.append(str);
		}
	}
	 catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return strb.toString();
	}
	/**
	 * 得到微信的相关文字
	 * @param str
	 * @return
	 */
	public static String getStrByXML(String str,String tagName){
		//解析XML,使用dom4j或者是SAX,JDOM这类框架.
		//使用最基本的字符串处理它
		//可以使用解析XML的第三方框架或者是工具包,dom4j之类的.
		String begin = "<"+tagName+"><![CDATA[";
		String end = "]]></"+tagName+">";
		boolean flag = false;
		if("CreateTime".equals(tagName)){
			flag = true;
		}else if("MsgId".equals(tagName)){
			flag = true;
		}else if("Location_X".equals(tagName)){
			flag = true;
		}else if("Location_Y".equals(tagName)){
			flag = true;
		}else if("Scale".equals(tagName)){
			flag = true;
		}
		if(flag ){
			 begin = "<"+tagName+">";
			 end = "</"+tagName+">";
		}
		System.out.println(begin);
		System.out.println(end);
		int beginIndex = str.indexOf(begin) + begin.length();//
		int endIndex = str.indexOf(end);
		
		return str.substring(beginIndex,endIndex);
		
	}
}
package wx.in;
/**
 * 微信文字类型
 * @author zhongzh
 *
 */
public class In_Text {


private String ToUserName =null;//	开发者微信号
private String FromUserName	=null;//发送方帐号(一个OpenID)
private String CreateTime =null;//	消息创建时间 (整型)
private String MsgType =null;//	text
private String Content =null;//	文本消息内容
private String MsgId = null;//	消息id,64位整型

public In_Text() {
	super();
	// TODO Auto-generated constructor stub
}
public In_Text(String requestStr) {
	this.setToUserName(In_Util.getStrByXML(requestStr,"ToUserName"));
	this.setFromUserName(In_Util.getStrByXML(requestStr,"FromUserName"));
	this.setCreateTime(In_Util.getStrByXML(requestStr,"CreateTime"));
	this.setMsgType(In_Util.getStrByXML(requestStr,"MsgType"));
	this.setContent(In_Util.getStrByXML(requestStr,"Content"));
	this.setMsgId(In_Util.getStrByXML(requestStr,"MsgId"));
	
}
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;
}
@Override
public String toString() {
	return "In_Text [ToUserName=" + ToUserName + ", FromUserName="
			+ FromUserName + ", CreateTime=" + CreateTime + ", MsgType="
			+ MsgType + ", Content=" + Content + ", MsgId=" + MsgId + "]";
}

}
package wx.in;

public class In_Location {
	private String  ToUserName=null;//	开发者微信号
	private String  FromUserName =null;//	发送方帐号(一个OpenID)
	private String  CreateTime =null;//	消息创建时间 (整型)
	private String  MsgType	=null;//location
	private String  Location_X	=null;//地理位置维度
	private String  Location_Y	=null;//地理位置经度
	private String  Scale	=null;//地图缩放大小
	private String  Label	=null;//地理位置信息
	private String  MsgId	=null;//消息id,64位整型
	
	
	
	public In_Location() {
		super();
	}
	public In_Location(String requestStr) {
		super();
		this.setToUserName(In_Util.getStrByXML(requestStr,"ToUserName"));
		this.setFromUserName(In_Util.getStrByXML(requestStr,"FromUserName"));
		this.setCreateTime(In_Util.getStrByXML(requestStr,"CreateTime"));
		this.setMsgType(In_Util.getStrByXML(requestStr,"MsgType"));
		this.setLocation_X(In_Util.getStrByXML(requestStr,"Location_X"));
		this.setLocation_Y(In_Util.getStrByXML(requestStr,"Location_Y"));
		this.setScale(In_Util.getStrByXML(requestStr,"Scale"));
		this.setLabel(In_Util.getStrByXML(requestStr,"Label"));
		this.setMsgId(In_Util.getStrByXML(requestStr,"MsgId"));
	}
	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 getLocation_X() {
		return Location_X;
	}
	public void setLocation_X(String location_X) {
		Location_X = location_X;
	}
	public String getLocation_Y() {
		return Location_Y;
	}
	public void setLocation_Y(String location_Y) {
		Location_Y = location_Y;
	}
	public String getScale() {
		return Scale;
	}
	public void setScale(String scale) {
		Scale = scale;
	}
	public String getLabel() {
		return Label;
	}
	public void setLabel(String label) {
		Label = label;
	}
	public String getMsgId() {
		return MsgId;
	}
	public void setMsgId(String msgId) {
		MsgId = msgId;
	}
	
	
}
package wx.in;

public class In_Link {
	private String ToUserName=null;//	接收方微信号
	private String FromUserName	=null;//发送方微信号,若为普通用户,则是一个OpenID
	private String CreateTime	=null;//消息创建时间
	private String MsgType	=null;//消息类型,link
	private String Title=null;//	消息标题
	private String Description	=null;//消息描述
	private String Url	=null;//消息链接
	private String MsgId	=null;//消息id,64位整型
	
	
	
	public In_Link() {
		super();
	}
	public In_Link(String requestStr) {
		super();
		this.setToUserName(In_Util.getStrByXML(requestStr,"ToUserName"));
		this.setFromUserName(In_Util.getStrByXML(requestStr,"FromUserName"));
		this.setCreateTime(In_Util.getStrByXML(requestStr,"CreateTime"));
		this.setMsgType(In_Util.getStrByXML(requestStr,"MsgType"));
		this.setTitle(In_Util.getStrByXML(requestStr,"Title"));
		this.setDescription(In_Util.getStrByXML(requestStr,"Description"));
		this.setUrl(In_Util.getStrByXML(requestStr,"Url"));
		this.setMsgId(In_Util.getStrByXML(requestStr,"MsgId"));
	}
	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 getTitle() {
		return Title;
	}
	public void setTitle(String title) {
		Title = title;
	}
	public String getDescription() {
		return Description;
	}
	public void setDescription(String description) {
		Description = description;
	}
	public String getUrl() {
		return Url;
	}
	public void setUrl(String url) {
		Url = url;
	}
	public String getMsgId() {
		return MsgId;
	}
	public void setMsgId(String msgId) {
		MsgId = msgId;
	}
	
}
package wx.in;

public class In_Image {
	private String ToUserName =null;//	开发者微信号
	private String FromUserName	=null;//发送方帐号(一个OpenID)
	private String CreateTime =null;	//消息创建时间 (整型)
	private String MsgType=null;	//image
	private String PicUrl	=null;//图片链接(由系统生成)
	private String MediaId	=null;//图片消息媒体id,可以调用多媒体文件下载接口拉取数据。
	private String MsgId	=null;//消息id,64位整型
	
	public In_Image() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public In_Image(String requestStr) {
		super();
		this.setToUserName(In_Util.getStrByXML(requestStr,"ToUserName"));
		this.setFromUserName(In_Util.getStrByXML(requestStr,"FromUserName"));
		this.setCreateTime(In_Util.getStrByXML(requestStr,"CreateTime"));
		this.setMsgType(In_Util.getStrByXML(requestStr,"MsgType"));
		this.setPicUrl(In_Util.getStrByXML(requestStr,"PicUrl"));
		this.setMediaId(In_Util.getStrByXML(requestStr,"MediaId"));
		this.setMsgId(In_Util.getStrByXML(requestStr,"MsgId"));
	}

	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 getPicUrl() {
		return PicUrl;
	}
	public void setPicUrl(String picUrl) {
		PicUrl = picUrl;
	}
	public String getMediaId() {
		return MediaId;
	}
	public void setMediaId(String mediaId) {
		MediaId = mediaId;
	}
	public String getMsgId() {
		return MsgId;
	}
	public void setMsgId(String msgId) {
		MsgId = msgId;
	}
	
	
	
}
<xml>
	<ToUserName><![CDATA[gh_44e4d096da50]]></ToUserName>
	<FromUserName><![CDATA[o2d2nwwoWhw1P2VDWiQHj1brqSc4]]></FromUserName>
	<CreateTime>1495011380</CreateTime>
	<MsgType><![CDATA[text]]></MsgType>
	<Content><![CDATA[1]]></Content>
	<MsgId>6421024984663956534</MsgId>
</xml>
<xml>
	<ToUserName><![CDATA[gh_44e4d096da50]]></ToUserName>
	<FromUserName><![CDATA[o2d2nwwoWhw1P2VDWiQHj1brqSc4]]></FromUserName>
	<CreateTime>1495011574</CreateTime>
	<MsgType><![CDATA[text]]></MsgType>
	<Content><![CDATA[2]]></Content>
	<MsgId>6421025817887612034</MsgId>
</xml>
<xml>
	<ToUserName><![CDATA[gh_44e4d096da50]]></ToUserName>
	<FromUserName><![CDATA[o2d2nwwoWhw1P2VDWiQHj1brqSc4]]></FromUserName>
	<CreateTime>1495014482</CreateTime>
	<MsgType><![CDATA[text]]></MsgType>
	<Content><![CDATA[北风网]]></Content>
	<MsgId>6421038307652509766</MsgId>
</xml>
<xml>
	<ToUserName><![CDATA[gh_44e4d096da50]]></ToUserName>
	<FromUserName><![CDATA[o2d2nwwoWhw1P2VDWiQHj1brqSc4]]></FromUserName>
	<CreateTime>1495029086</CreateTime>
	<MsgType><![CDATA[text]]></MsgType>
	<Content><![CDATA[ 00000000000000000]]></Content>
	<MsgId>6421101031354906377</MsgId>
</xml>

 

转载于:https://my.oschina.net/u/3206447/blog/901602

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值