Java中请求HTTPS加密的源代码

 HTTPS访问方法的代码,抄一个能用的DEMO吧,我测试过的,可以用、,希望对大家也有用

 

import  java.io. * ;
import  java.net. * ;
import  java.security. * ;
import  java.security.cert. * ;
import  java.util. * ;
import  javax.net.ssl. * ;

public   class  HttpsTest  {
    
// We would never hardcode this literal in a real system,
    
// this is only for this article.
    private String url = "https://www.paypal.com/cn";

    
// Create an anonymous class to trust all certificates.
    
// This is bad style, you should create a separate class.
    private X509TrustManager xtm = new X509TrustManager() {
        
public void checkClientTrusted(X509Certificate[] chain, String authType) {}

            
public void checkServerTrusted(X509Certificate[] chain, String authType) {
                System.out.println(
"cert: " + chain[0].toString() + ", authType: " + authType);
            }


            
public X509Certificate[] getAcceptedIssuers() {
                
return null;
            }

    }


    
// Create an class to trust all hosts
    private HostnameVerifier hnv = new HostnameVerifier() {
        
public boolean verify(String hostname, SSLSession session) {
            System.out.println(
"hostname: " + hostname);
            
return true;
        }

    }


    
// In this function we configure our system with a less stringent
    
// hostname verifier and X509 trust manager.  This code is
    
// executed once, and calls the static methods of HttpsURLConnection
    public HttpsTest() {
        
// Initialize the TLS SSLContext with
        
// our TrustManager
        SSLContext sslContext = null;

        
try {
            sslContext 
= SSLContext.getInstance("TLS");
            X509TrustManager[] xtmArray 
= new X509TrustManager[] { xtm };
            sslContext.init(
null, xtmArray, new java.security.SecureRandom());
        }
 catch(GeneralSecurityException gse) {
            
// Print out some error message and deal with this exception
        }


        
// Set the default SocketFactory and HostnameVerifier
        
// for javax.net.ssl.HttpsURLConnection
        if(sslContext != null{
            HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
        }


        HttpsURLConnection.setDefaultHostnameVerifier(hnv);
    }


    
// This function is called periodically, the important thing
    
// to note here is that there is no special code that needs to
    
// be added to deal with a "HTTPS" URL.  All of the trust
    
// management, verification, is handled by the HttpsURLConnection.
    public void run() {
        
try {
            URLConnection urlCon 
= (new URL(url)).openConnection();
            BufferedReader in 
= new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
            String line;

            
while((line = in.readLine()) != null{
                System.out.println(line);
            }


        
//  Whatever we want to do with these quotes
        }
 catch(MalformedURLException mue) {
            mue.printStackTrace();
        }
 catch(IOException ioe) {
            ioe.printStackTrace();
        }
 catch(Exception e) {
            e.printStackTrace();
        }

    }


    
public static void main(String[] args) {
        HttpsTest httpsTest 
= new HttpsTest();
        httpsTest.run();
    }

}
 
posted @ 2007-07-18 10:33  【风月无边】  阅读(37)  评论(0)    收藏  举报