java 微信 回复_微信&java 开发2 发送文本消息并回复

因为用的是springmvc

首先看一下统一接收接口,dispatchWeiXinRequest发放用于区别get还是post

@RequestMapping(value = "/dispatcher")

@ResponseBody

public void dispatcher(HttpServletRequest request,HttpServletResponse response) throws ParseException, org.dom4j.DocumentException {

LOG.info("Execute action's WeiXin:execute() method. Start:{}",System.currentTimeMillis() + "");

try {

/**

* 分发请求

*/

dispatchWeiXinRequest(request, response);

} catch (ServletException e) {

LOG.info("Execute action's WeiXin:execute() method Exception. {}",e.getMessage());

} catch (IOException e) {

LOG.info("Execute action's WeiXin:execute() method Exception. {}",e.getMessage());

}

LOG.info("Execute action's WeiXin:execute() method. End :{}",System.currentTimeMillis() + "");

}

private void dispatchWeiXinRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException, DocumentException {

if ("GET".equals(request.getMethod().toUpperCase().toString())) {

LOG.info("Execute action's WeiXin:dispatchWeiXinRequest() method. GET");

doGet(request, response);

} else if ("POST".equals(request.getMethod().toUpperCase().toString())) {

LOG.info("Execute action's WeiXin:dispatchWeiXinRequest() method. POST");

doPost(request, response);

}

}post方法

private void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ParseException, DocumentException {

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

PrintWriter out = response.getWriter();

try {

Map map = MessageUtil.xmlToMap(request);

String fromUserName = map.get("FromUserName");

String toUserName = map.get("ToUserName");

String msgType = map.get("MsgType");

String content = map.get("Content");

String message = null;

if(MessageUtil.MESSAGE_TEXT.equals(msgType)){

if("1".equals(content)){

message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.firstMenu());

}else if("2".equals(content)){

message = MessageUtil.initNewsMessage(toUserName, fromUserName);

}

}

out.print(message);

} finally{

out.close();

}

}

最后看一下MessageUtil

/**

* 图文消息的组装

* @param toUserName

* @param fromUserName

* @return

*/

public static String initNewsMessage(String toUserName,String fromUserName){

String message = null;

List newsList = new ArrayList();

NewsMessage newsMessage = new NewsMessage();

News news = new News();

news.setTitle("欢迎");

news.setDescription("Hello World。");

String localImg = "D:\\cc.jpg";

File srcFile = new File(localImg);

String tarImg = ServletContextUtil.get().getRealPath("/images") + "\\cc2.jpg";

File tarFile = new File(tarImg);

if(!tarFile.exists()) {

try {

FileCopyUtils.copy(srcFile,tarFile);

} catch (IOException e) {

e.printStackTrace();

}

}

news.setPicUrl(WeiXinPropUtil.WebDomain + "/WeiXin_SSM/images/cc2.jpg");

news.setUrl("www.imooc.com");

newsList.add(news);

newsMessage.setToUserName(fromUserName);

newsMessage.setFromUserName(toUserName);

newsMessage.setCreateTime(new Date().getTime());

newsMessage.setMsgType(MESSAGE_NEWS);

newsMessage.setArticles(newsList);

newsMessage.setArticleCount(newsList.size());

message = newsMessageToXml(newsMessage);

return message;

}

public class News {

private String Title;

private String Description;

private String PicUrl;

private String Url;

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 getPicUrl() {

return PicUrl;

}

public void setPicUrl(String picUrl) {

PicUrl = picUrl;

}

public String getUrl() {

return Url;

}

public void setUrl(String url) {

Url = url;

}

}

public class NewsMessage extends BaseMessage{

private int ArticleCount;

private List Articles;

public int getArticleCount() {

return ArticleCount;

}

public void setArticleCount(int articleCount) {

ArticleCount = articleCount;

}

public List getArticles() {

return Articles;

}

public void setArticles(List articles) {

Articles = articles;

}

}

/**

* 图文消息转为xml

* @param newsMessage

* @return

*/

public static String newsMessageToXml(NewsMessage newsMessage){

XStream xstream = new XStream();

xstream.alias("xml", newsMessage.getClass());

xstream.alias("item", new News().getClass());

return xstream.toXML(newsMessage);

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值