微信开发https请求

来源:互联网 发布:数据录入员述职报告 编辑:程序博客网 时间:2024/05/19 22:57
 /*** * httpRequest:(发起https请求并获取结果).* * @author hankeqi* @param @param requestUrl 请求地址* @param @param requestMethod 请求方式(GET、POST)* @param @param outputStr 提交的数据* @param @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)* @throws JSONObject DOM对象* @since JDK 1.7*/public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {JSONObject jsonObject = null;StringBuffer buffer = new StringBuffer();try {TrustManager[] tm = { (TrustManager) new MyX509TrustManager() };// 创建SSLContext对象,并使用我们指定的信任管理器初始化SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");sslContext.init(null, tm, new java.security.SecureRandom());SSLSocketFactory ssf = sslContext.getSocketFactory();// 从上述SSLContext对象中得到SSLSocketFactory对象URL url = new URL(requestUrl);HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();httpUrlConn.setSSLSocketFactory(ssf);httpUrlConn.setDoOutput(true);httpUrlConn.setDoInput(true);httpUrlConn.setUseCaches(false);httpUrlConn.setRequestMethod(requestMethod);// 设置请求方式(GET/POST)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) {log.error("Weixin server connection timed out.");} catch (Exception e) {log.error("https request error:", e);}return jsonObject;}


0 0
原创粉丝点击