bonjour,

je dois rendre un projet mardi et j'ai un enorme problème que je n'arrive pas a résoudre concernant les httpURLConnection.

J'essai de passer des parametres en POST et de modifier des headers.
problème: je n'arrive pas a faire passer + de 1 parametre en POST(quand j'en mets 2 ca marche pas ) et je n'arrive pas a ajouter ou modifier des headers.

voici mon code:
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
70
71
72
 
 
public String postURL(URL Url,String sParamsToPost)
	{
		StringBuilder sb = new StringBuilder();
	      //recup du saut de ligne
	      String LineSep = null;
	      try
	      {
	         LineSep = System.getProperty("line.separator");
	    	 // LineSep = "<br />";
	      }
	      catch (Exception e)
	      {
	         LineSep = "\n";
	      }
 
	      try
	      {
 
	    	 HttpURLConnection UrlConn = (HttpURLConnection) Url.openConnection();
//	    	 UrlConn.setAllowUserInteraction(false);
	    	 UrlConn.setDoOutput(true);	
	    	 UrlConn.addRequestProperty("Cache-Control", "max-age=0");
	    	 System.out.println(sParamsToPost);
	    	 if (!sParamsToPost.equals("")){
	        	 UrlConn.setRequestMethod("POST");
		         //poster les params
		         PrintWriter paramWriter = new PrintWriter(UrlConn.getOutputStream());
		         paramWriter.print(sParamsToPost);
		         //fermeture du post
		         paramWriter.flush();
		         paramWriter.close();
	         }else{
	        	 UrlConn.setRequestMethod("GET");
	         }
 
	    	 UrlConn.connect();
	    	 //lire les header de la reponse
	    	 Map<String, List<String>> map= UrlConn.getHeaderFields();
	         System.out.println("lecture MAP"); 
	         System.out.println(map.size());
	         Set<String> set = map.keySet();
		     for(String key : set){
		    	 System.out.println(key+" : "+map.get(key));
		     }
 
	         //Lire la reponse
	         InputStream  response = UrlConn.getInputStream();
	         BufferedReader bufReader = new BufferedReader(new InputStreamReader(response));
	         String sLine;
	         while ((sLine = bufReader.readLine()) != null)
	         {
	            sb.append(sLine);
	            sb.append(LineSep);
	         }
	         //deconnection
	         UrlConn.disconnect();
	      }
	      catch(ConnectException ctx)
	      {
	       // Log.fatal(this, "Connection lost : server may be down");
	        ctx.printStackTrace();
	      }
	      catch (Exception e)
	      {
	       //  Log.error(this,"postURL : "+e.getMessage());
	         e.printStackTrace();
	      }
	      //Log.debug(this, "retour url="+o_oSb.toString());
	     return sb.toString();
	    }
la chaine de parametre est de ce style la:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
sParamsToPost ="login=lea&password=unmotdePasse";
et quand j'affiche les headers de ma requete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
null : [HTTP/1.1 200 OK]
Date : [Sun, 20 Feb 2011 09:34:53 GMT]
Vary : [Accept-Encoding]
Transfer-Encoding : [chunked]
Keep-Alive : [timeout=5, max=100]
Set-Cookie : [60gp=R4109843113; path=/; expires=Tue, 22-Feb-2011 21:51:22 GMT]
Connection : [Keep-Alive]
Content-Type : [text/html]
Server : [Apache/2.2.X (OVH)]
X-Powered-By : [PHP/5.2.17]
donc suis-je passer a coté de quelque chose? j'ai du mal comprendre un truc parce que la je bug. Je sais qu'il y a déjà eu des discussions dessus mais ça ne m'aide pas.

Est-ce que quelqu'un pourrait quand même m'aider c'est assez urgent


merci,

Léa