Bonjour.
Je ne suis pas sur d'avoir mis mon topic dans la bonne catégorie donc merci de me signaler si il existe une catégorie plus adéquate.
J’aimerais faire a partir d’une URL, faire une requête https et afficher le code source de la page.
J’y arrive bien avec une requête http normal de la façon suivante :
Si ça intéresse des gens voici ma méthode convertStreamToString
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private void httpRequest() { try { URL url = new URL("http://www.google.com"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); InputStream urlData = connection.getInputStream(); System.out.println(convertStreamToString(urlData)); } catch (Exception e) { e.printStackTrace(); System.out.println("the server is not responding"); } }
Maintenant j’aimerais bien faire pareil pour une adresse https.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); }
J’ai trouvé une façon qui me retourne bien la page mais en réécrivant la méthode de vérification en renvoyant toujours true.
Donc j’ai le code de la page mais la validité de l’authentification n’est pas vérifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private void httpsRequest() { try { HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String urlHostName, SSLSession session) { return true; } }; HttpsURLConnection.setDefaultHostnameVerifier(hv); URL url = new URL("https://www.globalsign.com"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); InputStream urlData = connection.getInputStream(); System.out.println(convertStreamToString(urlData)); } catch (Exception e) { e.printStackTrace(); System.out.println("the server is not responding"); } }
Si qqun a une idée pour comment vérifier le certificat serveur ca m'interesse.
merci.
@+
Partager