根据开发文档可知,只要使用POST方式提交固定格式的json字符串到那个地址即可。这里我写的是最简单的文本
第一步:建立对应的实体类。
1 package cn.sp.bean; 2 3 import java.util.List; 4 import java.util.Map; 5 6 /**群发消息 7 * Created by 2YSP on 2017/7/12. 8 */ 9 public class MassMessage { 10 private List<String> touser; 11 private String msgtype; 12 private Map<String,Object> text ; 13 14 public List<String> getTouser() { 15 return touser; 16 } 17 18 public void setTouser(List<String> touser) { 19 this.touser = touser; 20 } 21 22 public String getMsgtype() { 23 return msgtype; 24 } 25 26 public void setMsgtype(String msgtype) { 27 this.msgtype = msgtype; 28 } 29 30 public Map<String, Object> getText() { 31 return text; 32 } 33 34 public void setText(Map<String, Object> text) { 35 this.text = text; 36 } 37 }
第二步:编写测试类:
1 package cn.sp.test; 2 3 import cn.sp.bean.AccessToken; 4 import cn.sp.bean.MassMessage; 5 import cn.sp.utils.WeiXinUtil; 6 import com.google.gson.Gson; 7 import com.google.gson.GsonBuilder; 8 import net.sf.json.JSONObject; 9 10 import java.util.ArrayList; 11 import java.util.HashMap; 12 import java.util.List; 13 import java.util.Map; 14 15 /** 16 * Created by 2YSP on 2017/7/12. 17 */ 18 public class Test { 19 public static final String URL = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN"; 20 21 public static void main(String[] args) { 22 //获取token 23 AccessToken token = WeiXinUtil.getAccessToken(); 24 String url = URL.replace("ACCESS_TOKEN", token.getToken()); 25 26 27 MassMessage massMessage = new MassMessage(); 28 List<String> list = new ArrayList<String>(); 29 list.add("o2fVHwF3EYXzhWa9a_UNlC5TNrEk"); 30 list.add("o2fVHwF3EYXzhWa9a_UNlC5TNrEk"); 31 massMessage.setTouser(list); 32 massMessage.setMsgtype("text"); 33 Map<String, Object> map = new HashMap<String, Object>(); 34 map.put("content", "hello,<a href='https://www.baidu.com'>点我去百度了</a>"); 35 massMessage.setText(map); 36 37 Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); 38 String str = gson.toJson(massMessage); 39 System.out.println("str:"+str); 40 41 JSONObject jso = WeiXinUtil.doPostStr(url, str); 42 System.out.println(jso.toString()); 43 } 44 }
这里是使用httpClient发起的请求,gson将对象转换为json字符串。
注意:openId至少为两个,否则返回报错不能发送,如果只有一个openId的话可以写两遍。
效果如图: