当前位置 : 主页 > 编程语言 > c++ >

java微信企业号推送消息

来源:互联网 收集:自由互联 发布时间:2021-06-30
最近在网上搜了一下通过java给微信企业推送消息的demo乱七八糟,就决定写一个简洁的demo出来,希望有同样问题的不要走冤枉路,需要一个json处理的jar(fastjson.jar) //==========================
最近在网上搜了一下通过java给微信企业推送消息的demo乱七八糟,就决定写一个简洁的demo出来,希望有同样问题的不要走冤枉路,需要一个json处理的jar(fastjson.jar)
//======================================工具类==================================================
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class HttpRequest {
	private static Log log = LogFactory.getLog(HttpRequest.class);

	/**
	 * 向指定URL发送GET方法的请求
	 * 
	 * @param url
	 *            发送请求的URL
	 * @param param
	 *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
	 * @return URL 所代表远程资源的响应结果
	 */
	public static String sendGet(String url) {
		StringBuffer result = new StringBuffer();
		BufferedReader in = null;
		try {
			String urlNameString = url;
			URL realUrl = new URL(urlNameString);
			URLConnection connection = realUrl.openConnection();
			connection.setRequestProperty("accept", "*/*");
			connection.setRequestProperty("connection", "Keep-Alive");
			connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
			connection.connect();
			in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
			String line;
			while ((line = in.readLine()) != null) {
				result.append(line);
			}
		} catch (Exception e) {
			log.error("发送请求" + url + "失败", e);
		} finally {
			try {
				if (in != null) {
					in.close();
				}
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		return result.toString();
	}

	public static String sendPost(String url, String param) {
		PrintWriter out = null;
		BufferedReader in = null;
		StringBuffer result = new StringBuffer();
		try {
			URL realUrl = new URL(url);
			URLConnection conn = realUrl.openConnection();
			conn.setRequestProperty("accept", "*/*");
			conn.setRequestProperty("connection", "Keep-Alive");
			conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
			conn.setDoOutput(true);
			conn.setDoInput(true);
			out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "utf-8"));
			out.print(param);
			out.flush();
			in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
			String line;
			while ((line = in.readLine()) != null) {
				result.append(line);
			}
		} catch (Exception e) {
			log.error("发送post请求" + url + "失败", e);
		} finally {
			try {
				if (out != null) {
					out.close();
				}
				if (in != null) {
					in.close();
				}
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}
		return result.toString();
	}
//======================================发送消息类==================================================
    
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class WeChat {

	/**
	 * 微信企业号发送信息
	 */
	public static String setMsg(String corpid, String corpsecret, int agentid, String touser, String content)
			throws Exception {
		String s = HttpRequest
				.sendGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret);
		if (s == null) {
			return null;
		}
		JSONObject parse = (JSONObject) JSON.parse(s);
		if (parse == null) {
			return null;
		}
		String object = String.valueOf(parse.get("access_token"));
		if (object == null) {
			return null;
		}
		Map
 
   msg = new HashMap<>();
		msg.put("touser", touser);
		msg.put("msgtype", "text");
		msg.put("agentid", agentid);
		Map
  
    text = new HashMap<>(); text.put("content", content); msg.put("text", text); String json = JSON.toJSONString(msg, SerializerFeature.DisableCircularReferenceDetect); return HttpRequest.sendPost("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + object + "", json); } //====================测试方法 public static void main(String[] args) { try { System.out.println(setMsg("ww2eca777777777777", "gDXXall0pvrrEJrdmwxTsVDv45RIbHs4J_8888888", 1000002, "cp", "你好")); } catch (Exception e) { e.printStackTrace(); } } }
  
 
fastjson-1.1.34.jar fastjson-1.1.34.jar
网友评论