微信公众号开发获取access_token和jsapiticket
来源:互联网 发布:淘宝店铺公告栏代码 编辑:程序博客网 时间:2024/05/16 13:48
Java实现HTTP的GET请求示例:
import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ConnectException;import java.net.URL;import javax.net.ssl.HttpsURLConnection;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import net.sf.json.JSONException;import net.sf.json.JSONObject;/** * 公众平台通用接口工具类 */public class WeixinUtil {/** * 发起https请求并获取结果 * * @param requestUrl 请求地址 * @param requestMethod 请求方式(GET、POST) * @param outputStr 提交的数据 * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值) */public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {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 (ConnectException ce) {ce.printStackTrace();} catch (Exception e) {e.printStackTrace();}return jsonObject;}/** * 获取access_token * * @param appid 凭证 * @param appsecret 密钥 * @return */public static String getAccessToken(String appid, String appsecret) {// 获取公众号access_token的链接String access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";String requestUrl = access_token.replace("APPID", appid).replace("APPSECRET", appsecret);JSONObject jsonObject = httpRequest(requestUrl, "GET", null);// 如果请求成功if (null != jsonObject) {try {return jsonObject.getString("access_token");} catch (JSONException e) {}}return null;}/** * 获取jsapi_ticket * * @param appid 凭证 * @param appsecret 密钥 * @return */public static String getJsapiTicket(String accessToken) {// 获取公众号jsapi_ticket的链接String jsapi_ticket_url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";if (accessToken != null) {String requestUrl = jsapi_ticket_url.replace("ACCESS_TOKEN", accessToken);// String requestUrl = access_token_url.replace("APPID",// appid).replace("APPSECRET", appsecret);JSONObject jsonObject = httpRequest(requestUrl, "GET", null);// 如果请求成功if (null != jsonObject) {try {return jsonObject.getString("ticket");} catch (JSONException e) {}}} else {System.out.println("*****token为空 获取ticket失败******");}return null;}}
import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.X509TrustManager;/** * 证书信任管理器(用于https请求) * */public class MyX509TrustManager implements X509TrustManager {public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}public X509Certificate[] getAcceptedIssuers() {return null;}}
阅读全文
1 0
- 微信公众号开发获取access_token和jsapiticket
- 微信公众号开发获取access_token
- 微信公众号开发-获取access_token
- 微信公众号开发之获取access_token[java版]
- 微信公众号开发——获取access_token
- 微信公众号开发(三)获取access_token
- MVC 微信公众号 获取 access_token
- 微信公众号获取access_token
- 4.微信公众号获取Access_token
- php 获取微信公众号access_token
- 微信公众号获取access_token
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- 微信公众号开发-开发环境搭建并通过java代码获取微信access_token
- 微信公众平台开发 获得公众号的access_token
- 用java开发微信公众号:公众号接入和access_token管理(二)
- 用java开发微信公众号:公众号接入和access_token管理(二)
- Lua和C++交互详细总结
- TCP和UDP两个协议在Java通信编程中是如何被使用的
- 第二十七天 数据库(上)
- MySQL——修改root密码
- 你升级Android Studio 3.0正式版了吗?来看看这些坑!
- 微信公众号开发获取access_token和jsapiticket
- 显示器竖屏显示会字体发虚的解决方法
- Android--Error:Library projects cannot enable Jack. Jack is enabled in default config
- Base Station HDU
- 观复嘟嘟:职场是个技术活-马未都
- thinkphp 命令行 踩坑 记录
- 百度百家号指数介绍
- Service的生命周期
- 菜鸟的linux服务器lnmp环境☞域名配置