05-获取ACCESS_TOKEN
1.基本参数的获取
在获取ACCESS_TOKEN之前,首先需要看下微信的开放文档中是如何定义获取ACCESS_TOKEN接口的。
接口调用请求说明
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
返回说明
{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数说明
2.验证代码
首先在编写测试方法之前,我们需要appID 和secret
获取来源是在申请公众号时会自动生成的
验证代码如下:
// 写入默认的url请求
private static final String TOKEN_URL ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
@Test
void getToken() throws Exception {
// 在微信公众号平台默认给的appid
String appID = "wx4b6b0740a59be897";
// 在微信公众号平台默认给的secret
String secret = "053c41592ae5998af216753749ae21c2";
URL url = new URL(TOKEN_URL.replace("APPID",appID).replace("APPSECRET",secret));
URLConnection urlConnection = url.openConnection();
// 如果要发送post请求的话放开以下代码
//设置为可以发送数据的状态
// urlConnection.setDoOutput(true);
// //获取输出流
// OutputStream outputStream = urlConnection.getOutputStream();
// outputStream.write("1111111".getBytes());
// outputStream.close();
InputStream is = urlConnection.getInputStream();
byte [] b = new byte[1024];
int len;
StringBuilder sb = new StringBuilder();
while((len=is.read(b))!= -1){
sb.append(new String(b,0,len));
}
System.out.println(sb.toString());
}
获取的内容如下:
后续的处理流程我没有写,后续的处理流程如下:
- 定义一个专门存储TOKEN的类(类中的信息包含TOKEN、TOKEN的创建时间、TOKEN的实效时间)
- 解析获取到的字符串(TOKEN、失效时间:当前时间+7200*1000、当前时间:System.currentTimeMillis())
- 在使用TOKEN之前先判断TOKEN是否失效,如果失效的话,在重新调用获取。