The code below is base on the internet material. One sinaeio: If you want to sign in the web site which based on https,sometimes you have to pass the username and password. Please pay attention to bold part, it shows how to do it. You have to encode the username and password base on base64.
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
import sun.misc.BASE64Encoder;
public class ssltest {
public static void main(String[] args) throws Exception {
ssltest s = new ssltest();
s.connect("http://006devtools-vs2/svn/hf/");
}
protected void connect(String strUrl) throws Exception {
// trustAllHttpsCertificates();
// HttpsURLConnection.setDefaultHostnameVerifier(hv);
String authorization = "alex_zhang:pwd";
String encodedAuthorization= new String(new BASE64Encoder().encode(authorization.getBytes()));
URL url = new URL(strUrl);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestProperty("Authorization", "Basic " + encodedAuthorization);
urlConn.connect();
int responseCode = urlConn.getResponseCode();
System.out.println(responseCode);
InputStream inputStream = urlConn.getInputStream();
BufferedReader d = new BufferedReader(new InputStreamReader(inputStream));
String readLine = null;
while((readLine = d.readLine())!= null)
System.out.println(readLine);
}
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
return true;
}
};
private static void trustAllHttpsCertificates() throws Exception {
// Create a trust manager that does not validate certificate chains:
javax.net.ssl.TrustManager[] trustAllCerts =
new javax.net.ssl.TrustManager[1];
javax.net.ssl.TrustManager tm = new miTM();
trustAllCerts[0] = tm;
javax.net.ssl.SSLContext sc =
javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, null);
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
sc.getSocketFactory());
}
public static class miTM implements javax.net.ssl.TrustManager,
javax.net.ssl.X509TrustManager {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public boolean isServerTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public boolean isClientTrusted(
java.security.cert.X509Certificate[] certs) {
return true;
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) throws
java.security.cert.CertificateException {
return;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) throws
java.security.cert.CertificateException {
return;
}
}
}