这很耳东先生 2016-08-11 04:03 采纳率: 0%
浏览 3403
已采纳

java微信公众号模板消息发送接口问题

java代码如下

 /**
     * 发送注册成功模板消息
     * @return
     */
    public static String toSendModelMessage(String openId,String phone,String id,String dayStr){
        String accessToken=getAccessToken();
        if(accessToken.length()<=0){
            return "";
        }
        System.out.println("accessToken==="+accessToken);
        String urlStr="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+accessToken;
        try {
            URL url = new URL(urlStr);
            HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
            urlConnection.setDoOutput(true);
            urlConnection.setDoInput(true);
            urlConnection.setRequestMethod("POST");
            urlConnection.setUseCaches(false); 
            urlConnection.setInstanceFollowRedirects(true);
            urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
            urlConnection.setRequestProperty("Charset", "UTF-8"); 
            urlConnection.connect();
            DataOutputStream out = new DataOutputStream(urlConnection.getOutputStream());
            String params="{"+
                            "\"touser\":\""+openId+"\","+
                            "\"template_id\":\"ZvG8sGRKqo2Hk-OFRkHVLbvaeZTX7DDJFyS3G-0mb4A\","+
                            "\"url\":\"http://map.baidu.com/\","+
                            "\"topcolor\":\"#FF0000\","+
                            "\"data\":{"+
                                "\"first\": {"+
                                "\"value\":\"客官,恭喜您成功注册为VIP\","+
                                "\"color\":\"#173177\""+
                                "},"+
                                "\"keyword1\":{"+
                                "\"value\":\""+phone+"\","+
                                "\"color\":\"#173177\""+
                                "},"+
                                "\"keyword2\":{"+
                                "\"value\":\""+id+"\","+
                                "\"color\":\"#173177\""+
                                "},"+
                                "\"keyword3\":{"+
                                "\"value\":\""+dayStr+"\","+
                                "\"color\":\"#173177\""+
                                "},"+
                                "\"remark\":{"+
                                "\"value\":\"点击跳转\","+
                                "\"color\":\"#173177\""+
                                "}"+
                             "}"+
                            "}";        
            System.out.println(params);
            out.writeBytes(params);
            out.flush();
            out.close(); 
            BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"UTF-8"));
            String line;
            String responseStr="";
            while ((line = reader.readLine()) != null){
                responseStr+=line;
            }
            System.out.println(responseStr);
            reader.close();
            urlConnection.disconnect();

        }catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
    }

返回的结果如下

 {"errcode":47001,"errmsg":"data format error hint: [IGparA0715ge14]"}

以下是我打印出来的请求json

{
    "touser":"on3mAwuljdY12JuRbua28EUCgW9o",
    "template_id":"ZvG8sGRKqo2Hk-OFRkHVLbvaeZTX7DDJFyS3G-0mb4A",
    "url":"http://map.baidu.com/",
    "topcolor":"#FF0000",
    "data":{
        "first":{
            "value":"客官,恭喜您成功注册为VIP",
            "color":"#173177"
        },
        "keyword1":{
            "value":"18520040243",
            "color":"#173177"
        },
        "keyword2":{
            "value":"5",
            "color":"#173177"
        },
        "keyword3":{
            "value":"2014年7月21日 18:36",
            "color":"#173177"
        },
        "remark":{
            "value":"点击跳转",
            "color":"#173177"
        }
    }
}

很想知道我错在哪!求有经验的同学指点下

  • 写回答

1条回答

  • 这很耳东先生 2016-08-11 07:00
    关注

    问题解决 post编码错误

     out.write(params.getBytes("UTF-8"));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误