微信高级群发接口 根据分组进行群发消息类型老不对

群发内容 不管是发图文还是文本,都提示 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之间少了逗号