群发内容 不管是发图文还是文本,都提示 errcode":40008,"errmsg":"invalid message type 怎么搞也发不出去。
public static String sendMsg(String data){
String access_token= getAccess_token();
String action = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token="+access_token;
try {
URL url = new URL(action);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("POST");
http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");//连接超时30秒
System.setProperty("sun.net.client.defaultReadTimeout", "30000"); //读取超时30秒
http.connect();
OutputStream os= http.getOutputStream();
os.write(data.getBytes("UTF-8"));//传入参数
os.flush();
os.close();
InputStream is =http.getInputStream();
int size =is.available();
byte[] jsonBytes =new byte[size];
is.read(jsonBytes);
String message=new String(jsonBytes,"UTF-8");
return message;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "失败";
}
public static void main(String[] args) throws Exception
{
String data="{\"filter\":{\"is_to_all\":false\"group_id\":\"0\"},\"text\":{\"content\":\"CONTENT\"},\"msgtype\":\"text\"}";
String result = sendMsg(data);
System.out.println(result);
}
有没有现成的例子,给个。。。。
没有,找平台的技术支持吧
看代码没有什么问题。试试把contentType请求头修正下。
http.setRequestProperty("Content-Type", "text/xml");
多补充几个请求头属性,conn就是你的http变量,body变量就是你发送的数据:
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "text/xml");
conn.setRequestProperty("Content-Length", body.getBytes().length+"");
conn.setRequestProperty("User-Agent",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
我也写过类似的群发代码,基本上跟你的代码差不多。只是请求头属性比较全一些。
is_to_all和group_id之间少了逗号