@RequestMapping(value = "/wx" , method = RequestMethod.POST)
public void message(HttpServletRequest request , HttpServletResponse response) throws Exception{
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
try {
Map<String, String> 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(MsgType.equals("text")){
TextMessage text = new TextMessage();
text.setContent("the message is:"+Content);
text.setCreatTime(new Date().getTime()+"");
text.setFromUserName(toUserName);
text.setToUserName(FromUserName);
text.setMsgType("text");
message = MessageUtil.textMessageToXML(text);
}
System.out.println(message);
out.print(message);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally{
out.close();
}
}
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
和微信提供的相比少了一行:<MsgId>1234567890123456</MsgId>
然后格式问题就不造了
这问题一年了还没人解决。。。。
测试时不行,应该是http://www.tunnel.mobi/映射问题吧。有空再放到SAE或者BAE看看吧
请问楼主解决了吗?我也是同样问题……
String FromUserName = map.get("FromUserName");
String toUserName = map.get("ToUserName");两个的位置调换一下就好了
http://www.imooc.com/qadetail/79983这个问答解决了问题的,你可以试试,只要求将两个顺序调换就好了
求解啊
控制台打印<xml>
<ToUserName>o9NXrw-dOGbB1AQd-iNADqOMlsg8</ToUserName>
<FromUserName>gh_93507f716d68</FromUserName>
<CreatTime>1437469274777</CreatTime>
<MsgType>text</MsgType>
<Content>the message is:wwwww</Content>
</xml>