发起https和http请求
来源:互联网 发布:汉诺塔递归算法 扩展 编辑:程序博客网 时间:2024/05/16 03:01
调用微信提供的相关接口时,使用到了如何发起https请求,记录一下:
/** * 发起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 (!StringUtil.isNullOrWhiteSpace(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; }
同时,记录下如何发起普通的http请求,如下:
public static String loadJson (String url) { StringBuilder json = new StringBuilder(); try { URL urlObject = new URL(url); URLConnection uc = urlObject.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String inputLine = null; while ( (inputLine = in.readLine()) != null) { json.append(inputLine); } in.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return json.toString(); }
0 0
- 发起https和http请求
- 如何在java中发起http和https请求
- 如何在java中发起http和https请求
- JAVA发起Http和Https的POST/GET请求
- 如何在java中发起http和https请求
- http 使用curl发起https请求
- http 使用curl发起https请求
- http 使用curl发起https请求
- http 使用curl发起https请求
- http 使用curl发起https请求
- http 使用curl发起https请求
- http 使用curl发起https请求
- java后台发起上传文件的post请求(http和https)
- http 使用curl发起https请求 error 60 51
- java 发起HTTP请求
- Java发起Http请求
- 使用http发起请求
- nginx发起http请求
- Week7_Support Vector Machines课后习题解答
- jvm 内存回收机制
- Android常见问题debug
- CentOS设置IP地址
- 数据结构(21)--查找之静态查找表
- 发起https和http请求
- eval的用法,以及不用eval而用parseJSON()
- 注解一之注解的基本概念
- [Linux]从控制台一次读取一个字符,无需等待回车键
- libcurl 之 curl_easy_setopt参数详细介绍
- get_bloginfo(获取博客信息)
- 小珂的编译器
- Kalman Filter的推导与应用(一)
- [转] ubuntu+php+nginx 安装