Https双向认证客户端请求方式

4 篇文章 0 订阅
2 篇文章 0 订阅
public static String httpRequest(String requestUrl, String requestMethod, String outputStr) { 
JSONObject jsonObject = null; 
StringBuffer buffer = new StringBuffer(); 
try { 
// 创建SSLContext对象,并使用我们指定的信任管理器初始化 

TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
KeyStore trustKeyStore = KeyStore.getInstance("JKS");
trustKeyStore.load(trustFileInputStream, trustPasswd.toCharArray());
        tmf.init(trustKeyStore);

        trustFileInputStream.close();

        KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(keyFileInputStream, keyPasswd.toCharArray());
kmf.init(ks, kp);

        SecureRandom rand = new SecureRandom();
SSLContext sslContext = SSLContext.getInstance("TLS");
        ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), rand);

// 从上述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(); 
System.out.println("返回的数据:"+buffer.toString());
// 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 buffer.toString(); 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值