使用httpClient获取微信accessToken

岳凯康
2023-12-01
public class AccessTokenUtil {

    private static final String APPID = "";
    private static final String APPSECRET = "";

    private static Log logger = LogFactory.getLog(AccessTokenUtil.class);

    public static String getToken() throws Exception {
        String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET;
//        URL url = new URL(accessTokenUrl);

        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        // 创建Get请求
        HttpGet httpGet = new HttpGet(accessTokenUrl);
// 响应模型
        CloseableHttpResponse response = null;
        try {
            // 由客户端执行(发送)Get请求
            response = httpClient.execute(httpGet);
            // 从响应模型中获取响应实体
            HttpEntity responseEntity = response.getEntity();
            if (responseEntity != null) {
                WechatVo o = JsonUtils.fromJson(EntityUtils.toString(responseEntity), WechatVo.class);
                System.out.println(o.toString());
                if (o.getAccess_token() != null) {
                    return o.getAccess_token();
                } else {
                    logger.error(o.getErrmsg());
                    return o.getErrmsg();
                }
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // 释放资源
                if (httpClient != null) {
                    httpClient.close();
                }
                if (response != null) {
                    response.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return "";
    }
}
 类似资料: