主程序如下:
public static void main(String strArgv[])
throws Exception
{
X509TrustManager xtm = new MyTrustManager();
TrustManager mytm[] =
{xtm};
SSLContext ctx = SSLContext.getInstance("SSL");
ctx.init(null,mytm,null);
SSLSocketFactory sf = ctx.getSocketFactory();
URL url = new URL("yourhttpssite");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setSSLSocketFactory(sf);
connection.setHostnameVerifier(new MyVerified());
connection.setDoOutput(true);
BufferedReader in
= new BufferedReader(new InputStreamReader(connection.getInputStream()));
// BufferedReader in
// = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
------------------------MyTrustManager.java------------------------------------
package com.netutel.ubisp.util;
import javax.net.ssl.*;
import java.net.*;
import java.security.cert.*;
import java.security.cert.CertificateException;
public class MyTrustManager implements X509TrustManager {
MyTrustManager() { // constructor
// create/load keystore
}
public void checkClientTrusted(X509Certificate chain[], String authType)
throws CertificateException {
}
public void checkServerTrusted(X509Certificate chain[], String authType)
throws CertificateException {
// special handling such as poping dialog boxes
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
-----------------------------MyVerified.java----------------------------------------
package com.netutel.ubisp.util;
import java.net.*;
import java.io.*;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.net.ssl.*;
public class MyVerified implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
关键在最后一个类HostnameVerifier
具体的文章可以翻看网络的文章