81,120
社区成员




public String postHttps(String urlString, String data, Logger logger) throws Exception {
SSLContext sc = null;
TrustManager[] trustAllCerts = new TrustManager[] { new javax.net.ssl.X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
} };
try {
sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
return urlHostName.equals(session.getPeerHost());
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
OutputStreamWriter os = null;
BufferedReader reader = null;
StringBuffer sb = new StringBuffer();
URL u = new URL(urlString);
HttpsURLConnection conn = (HttpsURLConnection) u.openConnection();
// conn.setRequestProperty("Content-Type", "text/xml");
conn.setDoOutput(true);
conn.setFollowRedirects(true);
// conn.setReadTimeout(30000);
os = new OutputStreamWriter(conn.getOutputStream());
os.write(data);
os.flush();
os.close();
return null;
}
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ page import="java.net.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>测试Https</title>
</head>
<body>
<%
out.print("默认:<br/>");
URL aURL = new URL("https://www.verisign.com");
URLConnection urlConn = aURL.openConnection();
if (urlConn instanceof com.sun.net.ssl.HttpsURLConnection) {
out.print("*** openConnection returns an instanceof com.sun.net.ssl.HttpsURLConnection<br/>");
}
if (urlConn instanceof javax.net.ssl.HttpsURLConnection) {
out.print("*** openConnection returns an instanceof javax.net.ssl.HttpsURLConnection<br/>");
}
if (urlConn instanceof HttpURLConnection) {
out.print("*** openConnection returns an instnace of HttpURLConnection<br/>");
}
%>
</body>
</html>
URLConnection = null;
if (urlConn instanceof com.sun.net.ssl.HttpsURLConnection) {
out.print("*** openConnection returns an instanceof com.sun.net.ssl.HttpsURLConnection<br/>");
urlConn = aURL.openConnection();
}
if (urlConn instanceof javax.net.ssl.HttpsURLConnection) {
out.print("*** openConnection returns an instanceof javax.net.ssl.HttpsURLConnection<br/>");
urlConn = aURL.openConnection();
}
if (urlConn instanceof HttpURLConnection) {
out.print("*** openConnection returns an instnace of HttpURLConnection<br/>");
urlConn = aURL.openConnection();
}
public static void main(String[] args) throws Exception {
processBySUNPlatform("http://", "", null);
processByReflection(new URL("http://").openConnection(), "", null);
}
public static void processBySUNPlatform(String urlString, String data, Logger logger) throws IOException{
OutputStreamWriter os = null;
URL u = new URL(urlString);
sun.net.www.protocol.http.HttpURLConnection conn = (sun.net.www.protocol.http.HttpURLConnection) u.openConnection();
conn.setDoOutput(true);
com.sun.net.ssl.HttpsURLConnection.setFollowRedirects(true);
os = new OutputStreamWriter(conn.getOutputStream());
os.write(data);
os.flush();
os.close();
}
public static void processByReflection(Object conn, String data, Logger logger) throws Exception{
if(conn == null) return;
OutputStreamWriter os = null;
conn.getClass().getMethod("setDoOutput", boolean.class).invoke(conn, true);
conn.getClass().getMethod("setFollowRedirects", boolean.class).invoke(null, true);
os = new OutputStreamWriter((OutputStream)conn.getClass().getMethod("getOutputStream", null).invoke(conn, null));
os.write(data);
os.flush();
os.close();
}