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 Test

15 {

16     public static final String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token";// 获取access

17                                                                                             // url

18     public static final String APP_ID = "wxa549b28c24cf341e";

19     public static final String SECRET = "78d8a8cd7a4fa700142d06b96bf44a37";

20 

21     // 获取token

22     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         try

32         {

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                 else

46                 {// 正常情况下{"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         finally

56         {

57             // 关闭连接 ,释放资源

58             client.getConnectionManager().shutdown();

59             return result;

60         }

61     }

62 

63     public static void main(String[] args) throws Exception

64     {

65         System.out.println("=========1获取token=========");

66         String accessToken = getToken(GET_TOKEN_URL, APP_ID, SECRET);// 获取token

67         if (accessToken != null)

68             System.out.println(accessToken);

69     }

70 

71 }

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

你可能感兴趣的:(Access)