Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取HTTP中的HTTPS内容_Java - Fatal编程技术网

Java 获取HTTP中的HTTPS内容

Java 获取HTTP中的HTTPS内容,java,Java,我有一个网站,它的一些页面是HTTP,另一些是HTTPS。我需要在HTTP页面获取HTTPS的值。我正在使用Java和Tomcat7。实际上,我是使用request.getparameter()在JSP页面中获得该值的。但在这种情况下,空格和@符号就像加密的值,显示一些额外的符号。请告诉我如何解决这个问题 提前感谢。您可以使用javax.net.ssl.HttpsURLConnection。请遵循以下示例: import java.net.MalformedURLException; impor

我有一个网站,它的一些页面是HTTP,另一些是HTTPS。我需要在HTTP页面获取HTTPS的值。我正在使用Java和Tomcat7。实际上,我是使用
request.getparameter()
在JSP页面中获得该值的。但在这种情况下,空格和@符号就像加密的值,显示一些额外的符号。请告诉我如何解决这个问题


提前感谢。

您可以使用
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" ......
响应代码:200 密码套件:SSL\u RSA\u和RC4\u 128\u SHA 证书类型:X.509 证书哈希代码:7810131 证书公钥算法:RSA 证书公钥格式:X.509 证书类型:X.509 证书哈希代码:6042770 证书公钥算法:RSA 证书公钥格式:X.509 ******URL的内容********
需要更多的信息来理解你的问题。也许与大家分享一些代码。“出了点问题”这一内容的结果就是这个答案与本网站的示例完全相同: