2012-03-21 4 views
0

У меня есть веб-сайт, его некоторые страницы находятся в HTTP и некоторые другие в HTTPS. Мне нужно получить значение HTTPS на странице HTTP. Я использую Java и Tomcat 7. На самом деле я получил значение на страницах JSP, используя request.getparameter(). Но в этом пространстве символы '@' похожи на зашифрованные значения, показывающие некоторые дополнительные символы. Может ли кто-нибудь сказать, как решить проблему.Получить HTTPS-контент в HTTP

Заранее спасибо.

+1

нужно немного больше информации, чтобы понять ваш вопрос. возможно, поделиться некоторым кодом. – dbrin

ответ

1

Вы можете использовать javax.net.ssl.HttpsURLConnection. Следуйте приведенным ниже пример:

import java.net.MalformedURLException; 
import java.net.URL; 
import java.security.cert.Certificate; 
import java.io.*; 

import javax.net.ssl.HttpsURLConnection; 
import javax.net.ssl.SSLPeerUnverifiedException; 

public class HttpsClient{ 

    public static void main(String[] args) 
    { 
     new HttpsClient().testIt(); 
    } 

    private void testIt(){ 
     String https_url = "https://www.google.com/"; 
     URL url; 

     try { 
     url = new URL(https_url); 
     HttpsURLConnection con = (HttpsURLConnection)url.openConnection(); 

     //dumpl all cert info 
     print_https_cert(con); 

     //dump all the content 
     print_content(con); 
     } 
     catch (MalformedURLException e) { 
     e.printStackTrace(); 
     } 
     catch (IOException e) { 
     e.printStackTrace(); 
     } 
    } 

    private void print_https_cert(HttpsURLConnection con){ 
    if(con!=null){ 
     try { 
     System.out.println("Response Code : " + con.getResponseCode()); 
     System.out.println("Cipher Suite : " + con.getCipherSuite()); 
     System.out.println("\n"); 

     Certificate[] certs = con.getServerCertificates(); 
     for(Certificate cert : certs){ 
      System.out.println("Cert Type : " + cert.getType()); 
      System.out.println("Cert Hash Code : " + cert.hashCode()); 
      System.out.println("Cert Public Key Algorithm : " + cert.getPublicKey().getAlgorithm()); 
      System.out.println("Cert Public Key Format : " + cert.getPublicKey().getFormat()); 
      System.out.println("\n"); 
     } 
     } 
     catch (SSLPeerUnverifiedException e) { 
     e.printStackTrace(); 
     } 
     catch (IOException e){ 
     e.printStackTrace(); 
     } 
    } 
    } 

    private void print_content(HttpsURLConnection con){ 
    if(con!=null){ 
     try { 
     System.out.println("****** Content of the URL ********");  
     BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); 

     String input; 

     while ((input = br.readLine()) != null){ 
      System.out.println(input); 
     } 

     br.close(); 
     } 
     catch (IOException e) { 
     e.printStackTrace(); 
     } 
    } 
    } 
} 

Выход:

Response Code : 200 
Cipher Suite : SSL_RSA_WITH_RC4_128_SHA 

Cert Type : X.509 
Cert Hash Code : 7810131 
Cert Public Key Algorithm : RSA 
Cert Public Key Format : X.509 

Cert Type : X.509 
Cert Hash Code : 6042770 
Cert Public Key Algorithm : RSA 
Cert Public Key Format : X.509 

****** Content of the URL ******** 
<!doctype html><html><head><meta http-equiv="content-type" ...... 
+0

«Что-то не так», этот контент приходит как результат –