happy new year,
je veux récupérer la session d'un URL en utilsant le protocole https via une classe java.
est ce qu'il y a un exemple ??
Merci d'avance.
Version imprimable
happy new year,
je veux récupérer la session d'un URL en utilsant le protocole https via une classe java.
est ce qu'il y a un exemple ??
Merci d'avance.
qu'est-ce que tu appelle "la session d'un URL" ? Ta classe java est coté serveur ou client?
voici ma classe :
il ma fiche dans le console l'erreur :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.Properties; import com.url.ssl.*; import javax.net.ssl.HttpsURLConnection; public class URLReader { public static void main(String[] args) throws Exception { Properties sysProp = System.getProperties(); sysProp.put("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol"); System.setProperties(sysProp); java.security.Security.addProvider(new com.url.ssl.Provider()); javax.net.ssl.SSLSocketFactory sf = (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(); javax.net.ssl.SSLSocket sock = null; //Construct the base64 string required for HTTP authentication (Insert your account details here) String user=""; String password=""; String auth; auth = "Basic " +new sun.misc.BASE64Encoder().encode((user + ":" + password).getBytes()); try { //Prepare the connection details URL ris = new URL("https://ri2.rois.com/cgi-bin/GetSessionId.cgi?cmd=get_session_id&uid=111111&uip=1.1.1.1"); HttpsURLConnection conn; conn = (HttpsURLConnection)(ris.openConnection()); conn.setRequestMethod("GET"); conn.setRequestProperty("Authorization", " " + auth); //Open connection and retrieve URL content conn.connect(); InputStream is = conn.getInputStream(); BufferedReader in = new BufferedReader( new InputStreamReader(is)); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } catch (Exception e) { System.err.println("Exception " + e); } } }
Exception java.net.UnknownHostException: ri2.rois.com
des explications svp.
il y a quelqu'un
J'ai l'impression que c'est du côté client.
Je jetterais un oeil à ceci, ça sera peut-être utile... http://hc.apache.org/httpclient-3.x/
Question bête, mais il n'est pa déconseillé d'utiliser les package sun du type
Si mes souvenirs sont, Netbeans me met des warnings sur ce genre de packageCode:sun.misc.BASE64Encoder()
je pense pas que c'est une question dns par ce que quand je passe url via browser ie: contrairement quand j'exécute ma classe il ma fiche toujours l'erreur:
??????????:roll:Citation:
Exception java.net.UnknownHostException: ri2.rois.com
vu le nombre de classes en com.xxxx que tu as dans ta config, je serais pas étonné que ton problème viens de là. Il se passe quoi si tu te contente de faire un new URL("https://.....") et que tu vire toute tes bidouilles du début?
j'ai rien compris
il est fortement déconseillé d'utiliser tous les packages en com.xxxx
Ce sont, je crois, des packages réservés de sun donc à ne pas utiliser, essaye d'enlever tous tes imports sun et réessaye, tu vas surement avoir des erreur de compilation mais soit tu vire les lignes, soit tu utilise d'autres objets, mais n'utilise pas les package sun, ton erreur peut venir de là.
Bon courage et bon nouvel an ;)
tu chipote sur les url handler, tu chipote sur les ssl handler, le tout en passant des classes de sun non documentée et donc dont le comportement n'est pas précis. Je vois pas pourquoi tu fait tout ca au lieu de faire directement un new URL() avec l'url dont t'as besoin...
Ce paquet de lignes
est je pense totalement inutile. Commence par le virer et nous dire si t'as encore des erreurs.Code:
1
2
3
4
5
6
7 Properties sysProp = System.getProperties(); sysProp.put("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol"); System.setProperties(sysProp); java.security.Security.addProvider(new com.url.ssl.Provider()); javax.net.ssl.SSLSocketFactory sf = (javax.net.ssl.SSLSocketFactory) javax.net.ssl.SSLSocketFactory.getDefault(); javax.net.ssl.SSLSocket sock = null;
toujours le meme erreur :roll::roll::roll:
Si tu passe par http plutot que https dans ton url, ca passe?
Aussi, que donne le code suivant avec ton java?
Ce code là fonctionne ici.Code:
1
2
3
4
5
6
7 try{ java.net.InetAddress[] address = java.net.InetAddress.getAllByName("ri2.rois.com"); for (int i=0;i<address.length;i++) System.out.println(address[i]); } catch (Exception e){ e.printStackTrace(); }