Aufruf von https

  • Themenstarter Themenstarter IsabelleM
  • Beginndatum Beginndatum
I

IsabelleM

Gibt es eine Möglichkeit eine Webseite aufzurufen mit https:// ...?

Java:
import java.net.*;
import java.io.*; 
import java.util.Scanner;

class ReadURL2 { 
    public static void main(String[] notUsed) { 
        try{ 
            URL httpsURL = new URL("https://www.commerzbank.de/de/hauptnavigation/kurse/kursinfo/devisenk/taegl_devisenk/taegl_devisenk.html"); 
            Scanner in = new Scanner(httpsURL.openStream());
            
            while (in.hasNextLine()) { 
                String line = in.nextLine();
                System.out.println(line); // Just print it.
            } 
            in.close(); 
    
        } catch (MalformedURLException me) { 
            System.err.println(me); 
    
        } catch (IOException ioe) { 
            System.err.println(ioe); 
        } 
    }
}
 
Moin,

prinzipiell sicher ;)

Wo liegt denn das konkrete Problem mit Deinem Code?
Sieht doch auf den ersten Blick gut aus - wobei ich mir nicht ganz sicher bin, ob der Scanner wirklich mit https klar kommt oder nur mit http!
Ggf. musst Du die Proxy-Daten (Adresse und Port) davor schreiben!

Gruß
Klaus
 
es kommt eine Exception:

Unable to load: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target


wie muss ich da vorgehen?
 
also mit dem Browser kann ich die Seite ja öffnen:

https://www.commerzbank.de/de/haupt...o/devisenk/taegl_devisenk/taegl_devisenk.html

Was müsste erweitert werden, um das für den Java-Client zuzulassen:
Java:
  import java.io.BufferedReader;
  import java.io.InputStreamReader;
  import java.io.OutputStreamWriter;
  import java.io.Writer;
  import java.net.Socket;

  import javax.net.ssl.SSLSocketFactory;

  public class Test {
        
//     public static final String TARGET_HTTPS_SERVER = "www.verisign.com"; 
     public static final String TARGET_HTTPS_SERVER = "www.commerzbank.de"; 
     public static final int    TARGET_HTTPS_PORT   = 443; 
        
     public static void main(String[] args) throws Exception {
        
       Socket socket = SSLSocketFactory.getDefault().
         createSocket(TARGET_HTTPS_SERVER, TARGET_HTTPS_PORT);
       try {
         Writer out = new OutputStreamWriter(
            socket.getOutputStream(), "ISO-8859-1");
         out.write("GET / HTTP/1.1\r\n");  
         out.write("Host: " + TARGET_HTTPS_SERVER + ":" + 
             TARGET_HTTPS_PORT + "\r\n");  
         out.write("Agent: SSL-TEST\r\n");  
         out.write("\r\n");  
         out.flush();  
         BufferedReader in = new BufferedReader(
            new InputStreamReader(socket.getInputStream(), "ISO-8859-1"));
         String line = null;
         while ((line = in.readLine()) != null) {
            System.out.println(line);
         }
       } finally {
         socket.close(); 
       }
     }
  }
 
Zurück