java微信接口之——获取access_token
本文转自http://www.cnblogs.com/always-online/category/598553.html
一、微信获取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,否则不会打印。
java微信接口之——获取access_token的更多相关文章
- java微信接口之五—消息分组群发
一.微信消息分组群发接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_t ...
- java微信接口之四—上传素材
一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...
- 微信小程序获取Access_token和页面URL生成小程序码或二维码
1.微信小程序获取Access_token: access_token具体时效看官方文档. using System; using System.Collections.Generic; using ...
- 微信公众平台——获取access_token、expires_in
微信公众平台——获取access_token.expires_in 在微信公众平台接口开发中,Access Token占据着重要地位,它相当于进入各种接口的邀请,拿到这个钥匙才拥有调用其他各种特殊接口 ...
- java微信接口之二—获取用户组
一.微信获取用户组接口简介 1.请求 该请求也是GET方式请求.请求的url格式如下: https://api.weixin.qq.com/cgi-bin/groups/get?access_toke ...
- 微信接口开发1--向微信发送请求--获取access_token
//随便放置一个php文件在服务器上.执行该方法--调用模拟get提交---到微信-->获得微信返回的access_token 不建议自己编写模拟get提交方法. 建议直接导入微信框架LaneW ...
- java微信接口之三—上传多媒体文件
一.微信上传多媒体接口简介 1.请求:该请求是使用post提交from来实现的,我们可以在网页上进行表单提交来实现.地址为: http://file.api.weixin.qq.com/cgi-bin ...
- java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源
A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...
- 微信公众号 --- 获取access_token
获取access_token 在左侧菜单栏中也可以找到 可以一步步的进行设置 , 身份验证的时候要 注意:密码是你创建微信公众号的密码 往一步步的执行就可以了 接下来就是获取ip 白名单,进行设置 ...
随机推荐
- Spring入门_04_注解注入
applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- html页面 代码 编写的 一些 基本素养 约定 知识点
hmtl代码书写也要养成一段一段的 区块代码, 每个区块代码 进行 html的 功能注释 自由文字的获得: (lorem ipsum: 乱数假文, 哑元文字) lorem ipsum: lipsum等 ...
- 计算机中的DMA的多种含义?
DMA: 一是 动态内存分配:dynamic memory allocate. 就是程序在执行过程中分配内存. 这就是我们在c/c++中经常用到的new, delete, alloc(函数)等等. [ ...
- linux shell中判断bash脚本输入的参数个数
看下面的一段程序. #!/bin/bash ]; then echo "参数个数为$#个" else echo "没有参数" fi
- readline
注意,向后表示向左,向前表示向右. "\C-f": forward-char 光标向右一个字符 "\C-b": backward-char 光标向左一个字符 ...
- JavaScript中 window.parent 、window.top、window.self代表的含义
在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...
- CSS 和 JS 文件合并工具
写 CSS 和 JavaScript 的时候, 我们会遇到一个两难的局面: 要么将代码写在一个大文件, 要么将代码分成多个文件. 前者导致文件难以管理, 代码复用性差, 后者则因为需要在载入多个文件令 ...
- 阿里云Centos配置iptables防火墙
虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptabl ...
- Java并发包源码学习之AQS框架(三)LockSupport和interrupt
接着上一篇文章今天我们来介绍下LockSupport和Java中线程的中断(interrupt). 其实除了LockSupport,Java之初就有Object对象的wait和notify方法可以实现 ...
- dede自定义表单增加添加时间怎么弄
我们在用dedecms添加自定义表单时有时想要设置一个用户提交的时间,方便查询,比如我们的客服人员查询昨天晚上下班后有哪些订单是刚生成的,比较好查看,如下图所示.那么,dedecms自定义表单增加添加 ...