上两节课介绍了微信公众平台开发工具类的开发,这节课呢就用到了,没有读前两节课程的读者建议看前两节课程,当然你可以可以去下载实例代码直接运行 。
使用"\n"换行
回复用户的文本消息换行,使得 消息的可读性,工整性,美观上都比不换行高了一个层级,带来的是更好的用户体验效果,接下来贴出的是doPost方法中的代码片段:/**
*处理微信服务器发来的消息
*实例源码在文章顶部有下载连接
*/
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
System.out.println("V型知识库原创");
System.out.println("微信服务器发来消息------------");
//将请求、响应的编码均设置为UTF-8(防止中文乱码)
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
StringrespMessage=null;
try{
//xml请求解析
MaprequestMap=MessageUtil.parseXml(request);//接收微信发过来的xml格式
//发送方帐号(open_id)
StringfromUserName=requestMap.get("FromUserName");
//公众帐号
StringtoUserName=requestMap.get("ToUserName");
//消息类型
StringmsgType=requestMap.get("MsgType");
//消息创建时间
StringcreateTime=requestMap.get("CreateTime");
//微信服务器post过来的内容
StringweixinContent=requestMap.get("Content");
System.out.println("公众号用户发送过来的文本消息内容:"+weixinContent);
//接下来我们用上一章节自己封装好的工具类
if(msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)){//文本类型用户回复“hh”微信自动回复此条消息
//回复换行的文本消息
TextMessagetextMessage=newTextMessage();
textMessage.setToUserName(fromUserName);
textMessage.setFromUserName(toUserName);
textMessage.setCreateTime(newDate().getTime());
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
textMessage.setFuncFlag(0);
//回复用户的换行字符串\n表示换行
StringBufferbuffer=newStringBuffer();
if(weixinContent.equals("hh")){//如果用户发送”hh“
buffer.append("你好我是V型知识库,我的域名是").append("\n\n");
buffer.append("1,微信技术").append("\n");
buffer.append("2,微信WeUi").append("\n");
buffer.append("3,微信蓝牙").append("\n");
buffer.append("4,微信jsapi").append("\n\n");
buffer.append("回复'hh'二字即可能显示此条消息");
}else{
buffer.append("您好我是V型知识库");
}
textMessage.setContent(buffer.toString());
respMessage=MessageUtil.textMessageToXml(textMessage);//转换成xml格式
}
//响应回复消息
PrintWriterout=response.getWriter();
out.print(respMessage);
out.close();
}catch(Exceptione){
e.printStackTrace();
}
}
由于编辑器预览效果和实际效果行数有错位,我在这里说的行数可能对应不上,不过错位行数不多,并不影响阅读。
39-44行代码之间,开头用了两个换行符,结束倒数第二句话用了两个换行符,中间用了一个换行符
效果图如下:
上面代码片段中用到的其他类,在文章顶部有代码下载链接,读者可自行下载,在这里就不在贴出