HTTPS请求

##HTTPS请求##

HttpsUtils代码

1package com.ices.utils.httpsHelp; 2import java.io.BufferedReader; 3import java.io.InputStream; 4import java.io.InputStreamReader; 5import java.io.OutputStream; 6import java.net.ConnectException; 7import java.net.URL; 8 9import javax.net.ssl.HttpsURLConnection; 10import javax.net.ssl.SSLContext; 11import javax.net.ssl.SSLSocketFactory; 12import javax.net.ssl.TrustManager; 13 14import org.apache.commons.logging.Log; 15import org.apache.commons.logging.LogFactory; 16 17/** 18* [@ClassName](https://my.oschina.net/u/3112573) HttpsUtils 19* @Description https 请求工具类 20* [@author](http://my.oschina.net/arthor) bin.w 21 * [@date](http://my.oschina.net/u/2504391) 2015-9-18 22*/ 23public class HttpsUtils { 24private static Log log=LogFactory.getLog(HttpsUtils.class); 25 26/** 27 * [@Title](http://my.oschina.net/title): httpRequest 28 * @Description: https 发起请求 29 * @param:@param requestUrl 请求地址 30 * @param:@param requestMethod 请求方式(GET、POST) 31 * @param:@param outputStr 提交的数据 32 * @param:@return 33 * @author: bin.w 34 * @date: 2015-9-18 下午9:23:07 35 */ 36public static String httpRequest(String requestUrl, String requestMethod, String outputStr) { 37 StringBuffer buffer = new StringBuffer(); 38 try { 39 // 创建SSLContext对象,并使用我们指定的信任管理器初始化 40 TrustManager[] tm = { new MyX509TrustManager() }; 41 SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); 42 sslContext.init(null, tm, new java.security.SecureRandom()); 43 // 从上述SSLContext对象中得到SSLSocketFactory对象 44 SSLSocketFactory ssf = sslContext.getSocketFactory(); 45 46 URL url = new URL(requestUrl); 47 HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection(); 48 httpUrlConn.setSSLSocketFactory(ssf); 49 50 httpUrlConn.setDoOutput(true); 51 httpUrlConn.setDoInput(true); 52 httpUrlConn.setUseCaches(false); 53 // 设置请求方式(GET/POST) 54 httpUrlConn.setRequestMethod(requestMethod); 55 56 if ("GET".equalsIgnoreCase(requestMethod)) 57 httpUrlConn.connect(); 58 59 // 当有数据需要提交时 60 if (null != outputStr) { 61 OutputStream outputStream = httpUrlConn.getOutputStream(); 62 // 注意编码格式,防止中文乱码 63 outputStream.write(outputStr.getBytes("UTF-8")); 64 outputStream.close(); 65 } 66 67 // 将返回的输入流转换成字符串 68 InputStream inputStream = httpUrlConn.getInputStream(); 69 InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); 70 BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 71 72 String str = null; 73 while ((str = bufferedReader.readLine()) != null) { 74 buffer.append(str); 75 } 76 bufferedReader.close(); 77 inputStreamReader.close(); 78 // 释放资源 79 inputStream.close(); 80 inputStream = null; 81 httpUrlConn.disconnect(); 82 } catch (ConnectException ce) { 83 log.info("Weixin server connection timed out."); 84 } catch (Exception e) { 85 log.info("https request error:{}", e); 86 } 87 return buffer.toString(); 88 } 89 90}

MyX509TrustManager代码

1package com.ices.utils.httpsHelp; 2 3import java.security.cert.CertificateException; 4import java.security.cert.X509Certificate; 5 6import javax.net.ssl.X509TrustManager; 7 8/** 9 * @ClassName MyX509TrustManager 10 * @Description 证书信任管理器(用于https请求) 11 * @author bin.w 12 * @date 2015-9-18 13 */ 14public class MyX509TrustManager implements X509TrustManager{ 15 16 public void checkClientTrusted(X509Certificate[] chain, String authType) 17 throws CertificateException { 18 // TODO Auto-generated method stub 19 20 } 21 22 public void checkServerTrusted(X509Certificate[] chain, String authType) 23 throws CertificateException { 24 // TODO Auto-generated method stub 25 26 } 27 28 public X509Certificate[] getAcceptedIssuers() { 29 // TODO Auto-generated method stub 30 return null; 31 } 32 33}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Java爬虫之JSoup使用教程

title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin

HTTPS请求 - HelloWorld