首页 > 代码库 > 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