Avatar billede jetrit Nybegynder
08. januar 2003 - 14:36 Der er 4 kommentarer og
1 løsning

get kald til HTTPS server

hej der

jeg sidder og skal laver et kald fra mit lille program til en server der køre med https.
er der nogen derude der ved hvordan kan man gøre det.
Avatar billede kasseper Nybegynder
08. januar 2003 - 14:51 #1
??????
prøv med lidt mere info...!
Avatar billede carstenknudsen Nybegynder
08. januar 2003 - 14:52 #2
Det er let at gøre det:
        int port = 443;
        String hostname = "hostname";
        SocketFactory socketFactory = SSLSocketFactory.getDefault();
        Socket socket = socketFactory.createSocket(hostname, port);
        InputStream in = socket.getInputStream();
        OutputStream out = socket.getOutputStream();
men du skal have registreret et certifikat med mindre
den server du connecter til har et certifikat fra
en af de store udbydere.
Avatar billede carstenknudsen Nybegynder
08. januar 2003 - 14:54 #3
Du kan naturligvis også direkte lave en url, den
understøtter https protokollen:
URL url = new URL("https://hostname");
men igen kommer det an på om der findes et
acceptabelt certifikat.
Avatar billede carstenknudsen Nybegynder
08. januar 2003 - 15:26 #4
Der er en måde at omgås problemet med certifikater
på, og det er at lave en TrustManager der per
automatik accepterer alle certifikater, som
vist herunder. Hvis du bare ønsker sikker kommunikation
uden at vide med hvem er det en acceptabel løsning.
    TrustManager[] trustAllCerts = new TrustManager[]{
        new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
            public void checkServerTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
        }
    };
   
    try {
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
    }
   
    try {
        URL url = new URL("https://hostname");
    } catch (MalformedURLException e) {
    }
Avatar billede carstenknudsen Nybegynder
08. januar 2003 - 15:53 #5
Jeg har testet sidstnævnte og det virker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester