javaweb使用post自定义json数据到微信小程序api接口来推送模板信息给用户,以及JSON数据包返回47001错误码data format error hint问题解决!!!

查了很多关于微信推送的,甚至看了php的推送代码,其实,微信推送主要是把参数格式传对基本没问题了,如果遇到返回47001错误码data format error hint,基本是传送json格式错误,你可以复制自己的参数去json校验一下。

下面是亲测成功的代码:

基本流程是,用开发id和开发密钥发送获取token,然后token拼接你的参数再请求另一个接口就行了,我这里写多了一个实体工具类ModelParam,方便我传参。

**
* 向指定URL发送GET方法的请求 获取token
*
*/
public String gettoken() {
String token=””;
String result = “”;//获取请求数据
String appId = “”;//小程序开发id
String secret = “”;//小程序开发密码
String url=”https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=”+appId+”&secret=”+secret;
BufferedReader in = null;
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
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.setConnectTimeout(5000);
connection.setReadTimeout(5000);
// 建立实际的连接
connection.connect();
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

String line;
while ((line = in.readLine()) != null) {
result += line;
}
JSONObject jsStr = JSONObject.fromObject(result); //将字符串转成json
token = jsStr.getString(“access_token”);//获取access_token的值
System.out.println(“token::”+result);
} catch (Exception e) {
LOG.error(“Exception occur when send http get request!”, e);
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return token;
}

然后是发送最后接口:(参数全部正确对应就可以了)

javaweb使用post自定义json数据到微信小程序api接口来推送模板信息给用户,以及JSON数据包返回47001错误码data format error hint问题解决!!!_第1张图片

javaweb使用post自定义json数据到微信小程序api接口来推送模板信息给用户,以及JSON数据包返回47001错误码data format error hint问题解决!!!_第2张图片

上面基本就搞定了,代码比较杂乱,不过只要逻辑清晰可以直接写一个简便优化就好。对于上面的代码,有什么问题的,或者要源代码的,可以下面评论,谢谢访问!!!

你可能感兴趣的:(学习心得,java)