微信获取AccessToken

package com.cxb.wx.accesstoken;


/**
 * @author ChenXb
 *
 *         2018年4月18日
 */
public class AccessToken {

private String access_token;
private int expires_in;


public String getAccess_token() {
return access_token;
}


public void setAccess_token(String access_token) {
this.access_token = access_token;
}


public int getExpires_in() {
return expires_in;
}


public void setExpires_in(int expires_in) {
this.expires_in = expires_in;
}


@Override
public String toString() {
return "AccessToken [access_token=" + access_token + ", expires_in=" + expires_in + "]";
}


}



package com.cxb.otherWx;
import java.net.MalformedURLException;
import java.net.URL;
import com.cxb.wx.accesstoken.AccessToken;
import com.cxb.wx.accesstoken.Account;
import com.google.gson.Gson;
/**
 * @author ChenXb
 *
 *         2018年4月19日      获取accesstoken的工具类
 */
public class AccessTokenUtils {
public static String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
public static String getAccessToken(String APPID, String APPSECRET) {
url = url.replaceAll("APPID", APPID).replaceAll("APPSECRET", APPSECRET);
URL Url = null;
try {
Url = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
String json = HttpUtils.get(Url);
Gson gson = new Gson();
AccessToken accessToken = gson.fromJson(json, AccessToken.class);
String access_token = accessToken.getAccess_token();
return access_token;
}


public static void main(String[] args) {

String accessToken = getAccessToken(Account.APPID, Account.APPSECRET);  //将这里的数值换成你自己的
System.out.println(accessToken);
}

}



//这里是https的工具类

package com.cxb.otherWx;


import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;


import java.io.IOException;
import java.net.URL;
/**
 * 
 * @author ChenXb
 *               这是http的get 和 post 请求
 * 2018年4月19日
 */
public class HttpUtils{


    private static final Logger logger = Logger.getLogger(HttpUtils.class);


    private final static String OPERATER_NAME = "【HTTP操作】";


    private final static int SUCCESS = 200;


    private final static String UTF8 = "UTF-8";


    private HttpClient client;


    private static HttpUtils instance = new HttpUtils();


    /**
     * 私有化构造器
     */
    private HttpUtils() {


        HttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
        HttpConnectionManagerParams params = httpConnectionManager.getParams();
        params.setConnectionTimeout(5000);
        params.setSoTimeout(20000);
        params.setDefaultMaxConnectionsPerHost(1000);
        params.setMaxTotalConnections(1000);
        client = new HttpClient(httpConnectionManager);
        client.getParams().setContentCharset(UTF8);
        client.getParams().setHttpElementCharset(UTF8);
    }
    
    /**
     * get请求
     */
    public static String get(URL url) {
        return instance.doGet(url);
    }


    private String doGet(URL url) {
        long beginTime = System.currentTimeMillis();
        String respStr = StringUtils.EMPTY;
        try {
            logger.info(OPERATER_NAME + "开始get通信,目标host:" + url);
            HttpMethod method = new GetMethod(url.toString());
            // 中文转码
            method.getParams().setContentCharset(UTF8);
            try {
                client.executeMethod(method);
            } catch (HttpException e) {


                logger.error(new StringBuffer("发送HTTP GET给\r\n").append(url)
                        .append("\r\nHTTP异常\r\n"), e);
            } catch (IOException e) {


                logger.error(new StringBuffer("发送HTTP GET给\r\n").append(url)
                        .append("\r\nIO异常\r\n"), e);
            }
            if (method.getStatusCode() == SUCCESS) {
                respStr = method.getResponseBodyAsString();
            }
            // 释放连接
            method.releaseConnection();


            logger.info(OPERATER_NAME + "通讯完成,返回码:" + method.getStatusCode());
            logger.info(OPERATER_NAME + "返回内容:" + method.getResponseBodyAsString());
            logger.info(OPERATER_NAME + "结束..返回结果:" + respStr);
        } catch (Exception e) {
            logger.info(OPERATER_NAME, e);
        }
        long endTime = System.currentTimeMillis();
        logger.info(OPERATER_NAME + "共计耗时:" + (endTime - beginTime) + "ms");


        return respStr;
    }




    /**
     * POST请求
     */
    public static String post(URL url, String content) {
        return instance.doPost(url, content);
    }


    private String doPost(URL url, String content) {
        long beginTime = System.currentTimeMillis();
        String respStr = StringUtils.EMPTY;
        try {
            logger.info(OPERATER_NAME + "开始post通信,目标host:" + url.toString());
            logger.info("通信内容:" + content);
            PostMethod post = new PostMethod(url.toString());
            RequestEntity requestEntity = new StringRequestEntity(content, "application/json;charse=UTF-8", UTF8);
            post.setRequestEntity(requestEntity);
            // 设置格式
            post.getParams().setContentCharset(UTF8);


            client.executeMethod(post);
            if (post.getStatusCode() == SUCCESS) {
                respStr = post.getResponseBodyAsString();
            }


            logger.info(OPERATER_NAME + "通讯完成,返回码:" + post.getStatusCode());
            logger.info(OPERATER_NAME + "返回内容:" + post.getResponseBodyAsString());
            logger.info(OPERATER_NAME + "结束..返回结果:" + respStr);
            post.releaseConnection();


        } catch (Exception e) {
            logger.error(OPERATER_NAME, e);
        }
        long endTime = System.currentTimeMillis();
        logger.info(OPERATER_NAME + "共计耗时:" + (endTime - beginTime) + "ms");
        return respStr;
    }


    //测试类
    public static void main(String[] args) throws Exception {
       /* JSONObject json = new JSONObject();
        json.put("funCode", "3001");
        json.put("platCode", "3001");
        URL url = new URL("http://127.0.0.1:9191/member");
        String resp = HttpUtil.post(url, json.toString());
        System.out.println(resp);*/
   
    URL url = new URL("http://www.baidu.com");
    String string = HttpUtils.get(url);
    System.out.println(string);
    }


}


附录:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值