51,397
社区成员




/**
* 处理https GET/POST请求
*
* @param requestUrl
* 请求地址
* @param requestMethod
* 请求方法(GET/POST)
* @param outputStr
* 参数 或者说请求体
* @return
* @throws Exception
* @throws NoSuchAlgorithmException
*/
public static String httpsRequest(String requestUrl, String requestMethod,
String outputStr) {
StringBuffer buffer = null;
try {
// 创建SSLContext
SSLContext sslContext = SSLContext.getInstance("SSL","SunJSSE");
TrustManager[] tm = { new MyX509TrustManager() };
// 初始化
sslContext.init(null, tm, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
// 获取SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setHostnameVerifier(DO_NOT_VERIFY);
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Content-Type", "text/plain;charset=utf-8");
conn.setRequestMethod(requestMethod);
// 设置当前实例使用的SSLSocketFactory
conn.setSSLSocketFactory(ssf);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
// 往服务器上写内容
if (null != outputStr) {
OutputStream out = conn.getOutputStream();
out.write(outputStr.getBytes("utf-8"));
out.close();
}
// 读取服务器端返回的内容
InputStream is = conn.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
buffer = new StringBuffer();
String line = null;
while ((line = br.readLine()) != null) {
buffer.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}
if(buffer.toString()==null){
return "获取sessionkey失败";
}
return buffer.toString();
}
/**
* 微信小程序获取session_key和openid的请求地址
*/
public final static String code_url = "[图片]https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
/**
* 微信小程序获取session_key
* @param appid
* @param secret
* @param jscode
* @return
*/
public static String getSessionKey(String appid,String secret,String jscode){
String requestUrl = code_url.replace("APPID", appid).replace("SECRET", secret).replace("JSCODE", jscode);
String json = CommonUtil.httpsRequest(requestUrl, "GET", null);
JSONObject js = JSONObject.fromObject(json);
return js.toString();
}