微信开发(三)

AccessToken的获取

步骤1:访问微信开发文档的https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET,获取json数据
步骤2:使用JSONObject依赖包将获取到的json数据对象化
步骤3:设置token的过期时间
步骤4:存储可用的token

具体代码示例:

/**
     * 向指定的地址发送get请求
     * @param url
     * @return
     */
    public static String get(String url){
        try {
            //获取URL对象
            URL urlObj = new URL(url);
            //获取连接
            URLConnection connection = urlObj.openConnection();
            //获取内容
            InputStream is = connection.getInputStream();
            byte[] b = new byte[1024];
            int len;
            StringBuilder sb = new StringBuilder();
            while ((len=is.read(b))!=-1){
                //System.out.println(sb);
                sb.append(new String(b,0,len));
            }
            //System.out.println(sb);
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

 private static final String GET_TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
    private static final String APPID="自己的APPID";
    private static final String APPSECRET="自己的APPSECRET";
    //存储token
    private static AccessToken at;

    /**
     * 存储token
     */
    private static void getToken(){
        String url = GET_TOKEN_URL.replace("APPID",APPID).replace("APPSECRET",APPSECRET);
        //获取到token为json
        String tokenStr = GetTokenUtil.get(url);
        //创建json对象
        JSONObject jsonObject = JSONObject.fromObject(tokenStr);
        //使用json对象获取值
        String token = jsonObject.getString("access_token");
        String expireIn = jsonObject.getString("expires_in");
        //创建token对象,并存储
        at = new AccessToken(token,expireIn);
    }

    /**
     * 获取Token的方法
     * @return
     */
    public static String getAccessToken(){
        if (at==null||at.isExpired()){
            getToken();
        }
        return at.getAccessToken();
    }

/**
 * AccToken对象
 */
public class AccessToken {

    private String accessToken;
    private long expireTime;
/*set AND get*/

    public AccessToken(String accessToken, String expireIn) {
        this.accessToken = accessToken;
        //设置过期时间
        expireTime = System.currentTimeMillis()+Integer.parseInt(expireIn)*1000;
    }
     /**
     * 判断是否过期
     * @return
     */
    public boolean isExpired(){
        return System.currentTimeMillis()>expireTime;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值