放出个常用的访问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", “”);