httpsutil java_HttpsUtil

放出个常用的访问hppts的工具类。该工具类共两个类文件,一个用于实现证书的java类,一个用于实际调用的java类。

MyX509TrustManager

用于创建访问https时所需要的证书。

[toggle hide="no" title="MyX509TrustManager" color="red"]

import javax.net.ssl.X509TrustManager;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

public class MyX509TrustManager implements X509TrustManager

{

public void checkClientTrusted(X509Certificate[] chain, String authType)

throws CertificateException

{}

public void checkServerTrusted(X509Certificate[] chain, String authType)

throws CertificateException

{}

public X509Certificate[] getAcceptedIssuers()

{

return null;

}

}

[/toggle]

HttpsUtil

用于项目中实际调用

[toggle hide="no" title="HttpsUtil" color="red"]

import org.json.JSONObject;

import sun.net.www.protocol.https.HttpsURLConnectionImpl;

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.ConnectException;

import java.net.URL;

import java.security.SecureRandom;

public class HttpsUtil {

/**

* GET/POST方式请求服务器(https协议)

*

* @param requestUrl

* 请求地址

* @param requestMethod

* 请求类型(GET/POST)

* @param outputStr

* 参数

* @return JSONObject

*

* */

public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr)

{

JSONObject jsonObject = new JSONObject();

StringBuffer buffer = new StringBuffer();

try

{

TrustManager[] tm = { new MyX509TrustManager() };

SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");

sslContext.init(null, tm, new SecureRandom());

// SSLSocketFactory ssf = sslContext.getSocketFactory();

URL url = new URL(requestUrl);

HttpsURLConnectionImpl httpUrlConn = (HttpsURLConnectionImpl)url

.openConnection();

httpUrlConn.setDoOutput(true);

httpUrlConn.setDoInput(true);

httpUrlConn.setUseCaches(false);

httpUrlConn.setRequestMethod(requestMethod);

if ("GET".equalsIgnoreCase(requestMethod)) {

httpUrlConn.connect();

}

if (outputStr != null)

{

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:"+buffer);

jsonObject.put("data",buffer.toString());

System.out.println("jsonObject:"+jsonObject);

}

catch (ConnectException ce)

{

ce.printStackTrace();

}

catch (Exception e)

{

e.printStackTrace();

}

return jsonObject;

}

}

[/toggle]

调用方式

先给出两种调用方式,更多组合请自行百搭

JSONObject result = HttpsUtil.httpRequest(url, "POST", prm);

JSONObject result = HttpsUtil.httpRequest(url+prm, "GET", “”);

e64a88434150118afc59587c713c5246.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值