首页>代码>微信公众账号开发接口实现 - java servlet>/Wechat/src/com/nko/wechat/Wechat.java
package com.nko.wechat;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import com.nko.utils.DisposeMessage;
import com.nko.bean.Parameter;

/**
 * 此Servlet用于向微信服务器发送和接收消息
 * @author ZZK
 *
 */
@WebServlet(name = "wechat", urlPatterns = "/wechat")
public class Wechat extends HttpServlet {
	Logger logger = Logger.getLogger(this.getClass());

	private static final long serialVersionUID = 1L;	//

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("----------get---------------");
		response.getWriter().print(request.getParameter("echostr"));
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 * 
	 * 用于和微信平台服务器交互的servlet
	 * @descript 接收到微信服务器发送过来的
	 */
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("----------post---------------");

		System.out.println("=====URL\t" + request.getRequestURL());
		System.out.println("=====remoteAddr\t" + request.getRemoteAddr());

		// 设置请求与响应的编码
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");

		// 获取接收到的消息XML
		String wechatXML = org.apache.commons.io.IOUtils.toString(request.getReader());
		System.out.println("+++++++++++++++++++++++++++" + wechatXML);

		// 调用解析方法并获取所有可用参数
		Parameter param = DisposeMessage.getMostlyParameter(wechatXML);

		// 获取当前工程的完整路径 用于回复请求
		String basePath = request.getScheme() + "://" + request.getServerName()
			+ ":" + request.getServerPort() + request.getContextPath();

		// 获取返回消息的XML
		String reXML = DisposeMessage.replyMSG(param, basePath);
		System.out.println("========================" + reXML);

		PrintWriter out = response.getWriter();
		out.write(reXML);
		out.flush();
		out.close();
	}
}
最近下载更多
liu2022  LV14 2022年7月31日
dongzhan  LV12 2021年12月16日
Tayirjan  LV11 2021年12月1日
tcloud  LV1 2021年10月30日
陈志远  LV1 2021年9月8日
seiseisizuka  LV1 2021年8月5日
yuzhang  LV2 2021年2月1日
wfqdxdx  LV6 2020年5月21日
MrZive  LV6 2020年5月6日
linghongjun5002  LV10 2020年4月15日
最近浏览更多
Gin19960217  LV4 1月12日
jerryPang  LV1 2023年6月28日
井晓码 2023年4月14日
暂无贡献等级
dengjunjun  LV15 2023年1月11日
uni-code_0123  LV1 2022年11月3日
babyFF9  LV8 2022年9月26日
微信网友_6139616720490496  LV1 2022年9月19日
xiex909  LV27 2022年8月19日
liu2022  LV14 2022年7月31日
豆子小兔子  LV9 2022年7月25日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友