JAVA学
2016-01-16 10:43
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);
}
/**
* 图文消息组装
* @param map
* @return
*/
public static String initNewsMessaeg(Map<String,String>map){
String message=null;
List<News>newslist=new ArrayList<News>();
NewsMessage newsMessage=new NewsMessage();
News news=new News();
news.setTitle("幕课网介绍");
news.setDescription("本套课程介绍微信公众号的开发,主要介绍公众号介绍");
news.setPicUrl("http://example.ngrok.cc/WeichatAbility/image/c.jpg");
news.setUrl("www.imooc.com");
newslist.add(news);
newsMessage.setToUserName(map.get("toUserName"));;
newsMessage.setFromUserName(map.get("fromUserName"));
newsMessage.setCreateTime(new Date().getTime());
newsMessage.setMsgType(MESSAGE_NEWS);
newsMessage.setArticles(newslist);
newsMessage.setArticleCount(newslist.size());
message= newsMessageToXml(newsMessage);
return message;
}
/**
* 文本消息组装
* @param map
* @return
*/
public static String initTestMessage(Map<String,String> map){
TextMessage text = new TextMessage();
text.setFromUserName(map .get("ToUserName"));
text.setToUserName(map .get("FromUserName"));
text.setMsgType(MESSAGE_TEXT);
text.setCreateTime(new Date().getTime());
String msgType= map.get("MsgType");
String content=map.get("Content");
String recontent ="";
System.out.println(msgType);
System.out.println(content);
System.out.println(MESSAGE_TEXT.equals(msgType));
if (MESSAGE_TEXT.equals(msgType)){
if("1".equals(content)){
recontent=firstMenu();
}else if("2".equals(content)){
recontent=initNewsMessaeg(map);
}else if("?".equals(content)||"?".equals(content)){
recontent="请输入1或2";
}
text.setContent(recontent);
}else if(MessageUtil.MESSAGE_EVENT.equals(msgType)){
String eventType=map.get("Event");
if(MessageUtil.MESSAGE_SUBSCRIBE.equals(eventType)){
text.setContent(menuText());
return textMessageToXml(text);
}} return textMessageToXml(text);
}
额,你这贴的,最后返回时生成的xml贴一下就行。xml生成格式对了,是可以输出了,根据xml看哪个地方没组装对。
哥们你这里错了,弄反了,哎,大家错的都是粗心的地方
newsMessage.setToUserName(map.get("toUserName"));;
newsMessage.setFromUserName(map.get("fromUserName"));
Java微信公众号开发进阶
87743 学习 · 343 问题
相似问题