Bonjour à tous,
je dois développer un petit programme en java qui a pour but d'exécuter une requête http en fonction de quelques paramètres donnés en entrée. C'est le genre de choses que je n'avais jamais fait et ce post sur le forum m'a beaucoup aidé à faire une première partie. La requête est bien envoyée. Cependant j'ai un problème auquel je ne trouve pas de solutions depuis et j'avoue je ne sais pas trop par où commencer. Voilà, le serveur qui doit exécuter la requête demande une authentification pour chaque requête. En gros il faut d'abord être connecté au système avant de faire quoi que se soit. Une fois que vous êtes connecté, vous pouvez faire tout se qui vous est permit. Ce ci est géré grâce aux sessions entre autre et en php en fait. Donc pour que mon programme fonctionne, il faut que j'envois une première requête qui va authentifier mon programme avant d'envoyer ma requête prévue. Lorsque j'envois la requête d'authentification, tout se passe bien et la réponse me dit que je suis connecté mais lorsque j'envois la deuxième requête, je le serveur me répond que je ne suis pas authentifié. Ce qui me fait penser que chaque requête émise par mon programme est perçue comme provenant d'une session à part. Ce que je voulais savoir c'est si c'est possible d'envoyer plusieurs requêtes de la même session. Je vais mettre mon code, j'espère que mon explication est claire sinon je suis disposé à donner plus d'informations
La classe UrlManager qui envoit les requette et qui est un copier coller de la solution du post que j'ai cité
L'envoi des requêtes
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
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
58
59
60
61
62
63
64
65
66
67
68
69 import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ConnectException; import java.net.HttpURLConnection; import java.net.URL; public class UrlManager { public String postURL(URL a_Url, String a_sParamsToPost) { StringBuilder o_oSb = new StringBuilder(); //recup du saut de ligne String o_sLineSep = null; try { o_sLineSep = System.getProperty("line.separator"); } catch (Exception e) { o_sLineSep = "\n"; } try { HttpURLConnection o_oUrlConn = (HttpURLConnection) a_Url.openConnection(); o_oUrlConn.setRequestMethod("POST"); o_oUrlConn.setAllowUserInteraction(false); //envoyer des params o_oUrlConn.setDoOutput(true); //poster les params PrintWriter o_oParamWriter = new PrintWriter(o_oUrlConn.getOutputStream()); o_oParamWriter.print(a_sParamsToPost); //fermer le post avant de lire le resultat ... logique o_oParamWriter.flush(); o_oParamWriter.close(); //Lire la reponse InputStream o_oResponse = o_oUrlConn.getInputStream(); BufferedReader o_oBufReader = new BufferedReader(new InputStreamReader(o_oResponse)); String sLine; while ((sLine = o_oBufReader.readLine()) != null) { o_oSb.append(sLine); o_oSb.append(o_sLineSep); } //deconnection o_oUrlConn.disconnect(); } catch(ConnectException ctx) { ctx.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return o_oSb.toString(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 UrlManager mng=new UrlManager(); URL url=new URL("l'url de connexion qui marche bien"); //connexion String reponse = mng.postURL(url, ""); System.out.println(reponse); System.out.println("je dois renvoyer le solde du client :"+sms.getExpediteur()); url=new URL("l'url d traitement qui me dit que je ne suis pas connecté"); System.out.println(mng.postURL(url, ""));
Partager