微信公众平台 java 获取accesstoken 2
来源:互联网 发布:医院网络咨询 编辑:程序博客网 时间:2024/06/06 06:36
/**
* 发起https请求并获取结果
*
* @param requestUrl 请求地址
* @param requestMethod 请求方式(GET、POST)
* @param outputStr 提交的数据
* @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
public static JSONObject httpRequest(StringrequestUrl, StringrequestMethod, StringoutputStr) {
JSONObject jsonObject =null;
StringBuffer buffer = new StringBuffer();
try {
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = {new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE");
sslContext.init(null,tm,new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf =sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection)url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 当有数据需要提交时
if (null !=outputStr) {
OutputStream outputStream =httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 将返回的输入流转换成字符串
InputStream inputStream =httpUrlConn.getInputStream();
InputStreamReader inputStreamReader =new InputStreamReader(inputStream,"utf-8");
BufferedReader bufferedReader =new BufferedReader(inputStreamReader);
String str = null;
while ((str =bufferedReader.readLine()) !=null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectExceptionce) {
logger.error("Weixin server connection timed out.");
} catch (Exception e) {
logger.error("https request error:{}",e);
}
return jsonObject;
}
// 获取access_token的接口地址(GET) 限200(次/天)
publicfinalstatic Stringaccess_token_url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
* 获取access_token
*
* @param appid 凭证
* @param appsecret 密钥
* @return
*/
public static AccessToken getAccessToken() {
AccessToken accessToken =null;
String requestUrl = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
JSONObject jsonObject = httpRequest(requestUrl,"GET",null);
// 如果请求成功
if (null !=jsonObject) {
try {
accessToken = new AccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
} catch (JSONExceptione) {
accessToken = null;
// 获取token失败
logger.error("获取token失败 errcode:{} errmsg:{}",jsonObject.getInt("errcode"),jsonObject.getString("errmsg"));
}
}
return accessToken;
}
- 微信公众平台 java 获取accesstoken 2
- Java微信公众平台开发之AccessToken获取
- 微信公众平台开发---获取accessToken
- php获取微信公众号accessToken
- java 微信获取accessToken
- 使用golang快速开发微信公众平台(二):获取accessToken
- 最简单实用微信公众号永久获取accesstoken
- 微信公众号开发(二)获取AccessToken、jsapi_ticket
- 获取微信 accesstoken
- 获取微信accessToken
- java开发微信之accesstoken获取
- JAVA微信开发:如何获取accessToken
- java微信公众平台获取access_token
- PHP获取微信 accesstoken
- Java微信公众平台开发之获取地理位置
- java 微信公众平台之获取access_token
- 使用C# .net开发微信公众号之获取AccessToken
- 微信公众号基础02_获取accessToken和用户信息
- c++,java,python 的字符串反转方法(回文数比较)
- matchShapes函数参数问题
- 英语四级作文学习的总结
- 实施微服务架构的关键技术
- 模拟链表
- 微信公众平台 java 获取accesstoken 2
- ios 基础工具类总结
- Linux--网络管理(7层结构、netstat、ifconfig、配置文件、虚拟机中的网络连接)
- 肤色检测&人脸检测数据集等链接大集合(持续更新中...)
- 第九章 套接字的多种可选项
- Head First javaScript_#8DOM
- Hql中的基本查询语句(含聚合函数)
- linux-网络管理(常用命令)
- C++ 常用算法的应用实例