📄 httpstest.txt
字号:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package DWGCollectSystem;
import java.io.IOException;
import java.net.URL;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.InputStream;
import java.security.KeyStore;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.TrustManagerFactory;
/**
*
* @author KO
*/
public class HttpsTest {
private static class TrustAnyTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
private static class TrustAnyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
KeyStore ks = null;
char[] password = null;
private void init(){
try {
ks = KeyStore.getInstance(KeyStore.getDefaultType());
password = "changeit".toCharArray();
String keystore = "e:\\soap\\server_keystore";
Class tclass = this.getClass();
InputStream is = tclass.getResourceAsStream(keystore);
ks.load(is, password);
} catch (IOException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (CertificateException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (KeyStoreException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
private KeyManager[] getKeyManagerFactory(){
try {
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, password);
return kmf.getKeyManagers();
} catch (KeyStoreException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnrecoverableKeyException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
public TrustManager[] getTrustManager(){
TrustManagerFactory tmf;
try {
tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ks);
return tmf.getTrustManagers();
} catch (KeyStoreException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(HttpsTest.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
public static void main(String[] args) throws Exception {
System.setProperty(
"javax.net.ssl.trustStore",
"e:\\soap\\server_keystore");
System.setProperty(
"javax.net.ssl.trustStorePassword",
"changeit");
HttpsTest ht = new HttpsTest();
ht.init();
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(ht.getKeyManagerFactory(), new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL("https://localhost:9876/soap");
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
// conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
conn.connect();
// conn.getDoInput();
// conn.getDoOutput();
// conn.getSSLSocketFactory()
System.out.println(conn.getResponseCode());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -