首页 > 代码库 > java微信接口之——获取access_token

java微信接口之——获取access_token

一、微信获取access_token接口简介

  1、请求:该请求是GET方式请求,所以要携带的参数都是附加到url后面传递给微信服务器。请求的url格式如下:

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    其中,APPID与APPSECRET都我们开发的时候自己帐号申请的。
  2、响应:返回数据都是json数据,格式如下:
   正确的时候返回的数据: {"access_token":"ACCESS_TOKEN","expires_in":7200}

     ACCESS_TOKEN:访问token,expires_in为过期时间
   错误的时候返回的数据: {"errcode":40013,"errmsg":"invalid appid"}

     errcode,为错误代码,errmsg为错误信息
   具体api说明可查看文档:http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96access_token 。

二、关于java代码的调用

  该接口可以在前台用页面ajax调用,也可以在后台用java代码调用。这里需要使用到apache的http组件httpcomponents-client,这里使用的版本为httpcomponents-client-4.2.1,下载地址为:http://hc.apache.org/downloads.cgi。需要使用到的jar文件如下:

三、代码实现

 1 package com.demo.test; 2  3 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpResponse; 5 import org.apache.http.HttpStatus; 6 import org.apache.http.client.HttpClient; 7 import org.apache.http.client.methods.HttpGet; 8 import org.apache.http.impl.client.DefaultHttpClient; 9 import org.apache.http.util.EntityUtils;10 11 import com.google.gson.JsonObject;12 import com.google.gson.JsonParser;13 14 public class Test15 {16     public static final String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token";// 获取access17                                                                                             // url18     public static final String APP_ID = "wxa549b28c24cf341e";19     public static final String SECRET = "78d8a8cd7a4fa700142d06b96bf44a37";20 21     // 获取token22     public static String getToken(String apiurl, String appid, String secret)23     {24         String turl = String.format(25                 "%s?grant_type=client_credential&appid=%s&secret=%s", apiurl,26                 appid, secret);27         HttpClient client = new DefaultHttpClient();28         HttpGet get = new HttpGet(turl);29         JsonParser jsonparer = new JsonParser();// 初始化解析json格式的对象30         String result = null;31         try32         {33             HttpResponse res = client.execute(get);34             String responseContent = null; // 响应内容35             HttpEntity entity = res.getEntity();36             responseContent = EntityUtils.toString(entity, "UTF-8");37             JsonObject json = jsonparer.parse(responseContent)38                     .getAsJsonObject();39             // 将json字符串转换为json对象40             if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK)41             {42                 if (json.get("errcode") != null)43                 {// 错误时微信会返回错误码等信息,{"errcode":40013,"errmsg":"invalid appid"}44                 }45                 else46                 {// 正常情况下{"access_token":"ACCESS_TOKEN","expires_in":7200}47                     result = json.get("access_token").getAsString();48                 }49             }50         }51         catch (Exception e)52         {53             e.printStackTrace();54         }55         finally56         {57             // 关闭连接 ,释放资源58             client.getConnectionManager().shutdown();59             return result;60         }61     }62 63     public static void main(String[] args) throws Exception64     {65         System.out.println("=========1获取token=========");66         String accessToken = getToken(GET_TOKEN_URL, APP_ID, SECRET);// 获取token67         if (accessToken != null)68             System.out.println(accessToken);69     }70 71 }

  当token正常返回的时候会打印token,否则不会打印。

java微信接口之——获取access_token