模仿php,用servlet写了一个接口.调试成功.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//System.out.println("i am ok");
String signature=request.getParameter("signature");
String timestamp=request.getParameter("timestamp");
String nonce=request.getParameter("nonce");
String echostr=request.getParameter("echostr");
String token="169gold";//这个作用主要是生成验证字符串吧。。我也搞不清。。。随便写
String[] str={token,timestamp,nonce};
Arrays.sort(str);
String bigStr=str[0]+str[1]+str[2];
String digest = new SHA1().getDigestOfString(bigStr.getBytes()).toLowerCase();
if(digest.equals(signature)){
response.setCharacterEncoding("utf-8");
System.out.println(echostr);
BufferedReader sis = request.getReader();
char[] buf = new char[1024];
int len = 0;
StringBuffer sb = new StringBuffer();
while((len = sis.read(buf))!= -1){
sb.append(buf,0,len);
}
//System.out.println(sb.toString()+";;;;;;;");
response.setContentType("text/xml");
response.getWriter().print("<?xml version=\"1.0\"?><xml><ToUserName><![CDATA[o3B6FjkJtJB_VCQnbMH65lA_6l2s]]></ToUserName>"+
"<FromUserName><![CDATA[gh_53d680696bf4]]></FromUserName>"+
"<CreateTime>1357449401</CreateTime>"+
"<MsgType><![CDATA[text]]></MsgType>"+
"<Content><![CDATA[欢迎来到黄金台]]></Content>"+
"</xml>");
response.getWriter().print(echostr);
}
}
然后从网上搜到一个SHAI的加密类
http://blog.163.com/zhaowenchao_vip/blog/static/1715151442011752234456/