勤奋的态度和过程.
腾讯官方开发文档有错,是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>