[J2ME] un POST http

un POST http [J2ME] - Java - Programmation

Marsh Posté le 23-01-2005 à 21:25:43    

J'essaye de faire un POST en http depuis J2ME (MIDP 2.0 pour être précis).
 
Il n'y a qu'un paramètre : message, qui est une chaine de caractère.
 
Voici le code  
:
 

Code :
  1. private HttpConnection getConnection(String url) throws IOException {
  2.  HttpConnection c = (HttpConnection)Connector.open(url);
  3.         // Set the request method and headers
  4.         c.setRequestMethod(HttpConnection.GET);
  5.         c.setRequestProperty("If-Modified-Since",
  6.             "29 Oct 1999 19:43:31 GMT" );
  7.         c.setRequestProperty("User-Agent", userAgent);
  8.         c.setRequestProperty("Content-Language", "en-US" );
  9.  return c;
  10. }
  11. public void postMessage (String message) throws IOException {
  12.  HttpConnection c = (HttpConnection)Connector.open(addUrl);
  13.  String encodedData = "message=" + urlEncoder(message);
  14.         // Set the request method and headers
  15.         c.setRequestMethod(HttpConnection.POST);
  16.         c.setRequestProperty("If-Modified-Since",  "29 Oct 1999 19:43:31 GMT" );
  17.         c.setRequestProperty("User-Agent", userAgent);
  18.         c.setRequestProperty("Content-Language", "en-US" );
  19.         int requestSize = encodedData.length();
  20.         c.setRequestProperty("Content-Length", Integer.toString(requestSize));
  21.         c.setRequestProperty("Content-Type","application/x-www-form-urlencoded" );
  22.        
  23.         System.err.println ("RequestSize="+requestSize+" data="+encodedData);
  24.        
  25.         // messageParameters
  26.  OutputStream  os = c.openOutputStream();
  27.  os.write(encodedData.getBytes());
  28.  os.flush ();
  29.  int rc = c.getResponseCode();
  30. }


 
Ca lance le post, et quand je vais voir les logs de mon serveur, je me tape une réponse 411 [:benou]
 
A l'éxecution, la petite trace me dit :  
 

RequestSize=13 data=message=prout

, ce qui me semble raisonnable.
 
Avez vous une idée du problème ?


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 23-01-2005 à 21:25:43   

Reply

Marsh Posté le 24-01-2005 à 10:19:33    

411 ca signifit que le server n'a pas reçu le content-length : http://www.w3.org/Protocols/rfc261 [...] sec10.4.12
ce qui est surprenant vu que tu l'envois ...
 
y a pas moyen que tu loggues l'intégralité de la requête côté serveur ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 24-01-2005 à 17:18:47    

Et biens en loggant la requette avec ethereal, effectivement, il y a pas de Content-Length qui passe ....


Message édité par elianor le 24-01-2005 à 17:20:58

---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 25-01-2005 à 15:31:59    

Si tu vires  
# int requestSize = encodedData.length();
# c.setRequestProperty("Content-Length", Integer.toString(requestSize));
ca te dit quoi ?

Reply

Marsh Posté le 25-01-2005 à 19:12:12    

411 [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 25-01-2005 à 19:13:00    

étonnant [:totozzz]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-01-2005 à 19:14:53    

je suppose que tu as vérifié que tes autres propriétés etaient passées?
... au fait il sort d'ou ton HttpConnection ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-01-2005 à 19:46:43    

the real moins moins a écrit :

je suppose que tu as vérifié que tes autres propriétés etaient passées?
... au fait il sort d'ou ton HttpConnection ?


javax.microedition.io
Interface HttpConnection

Reply

Marsh Posté le 25-01-2005 à 19:48:29    

ha oké :)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-01-2005 à 22:00:09    

the real moins moins a écrit :

je suppose que tu as vérifié que tes autres propriétés etaient passées?


 
Oui, j'ai même modifié l'UA pour voir si j'utilisait bien le bon binaire ...


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 25-01-2005 à 22:00:09   

Reply

Marsh Posté le 25-01-2005 à 22:09:14    

y'a des bouts de code ici
http://cephas.net/blog/2003/08/30/ [...] owser.html ... ptet l'ordre des proprietés à de l'importance ? :/

Reply

Marsh Posté le 25-01-2005 à 22:11:57    

Il fait des GET [:spamafote] j'en fait aussi sans problèmes. C'est le POST qui me pose problème [:spamafote]
 


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 25-01-2005 à 22:12:57    

nan mais plus bas, dans les commentaires, y'a des posts..

Reply

Marsh Posté le 26-01-2005 à 19:54:50    

\o/
ben ça marche ça http://opensvn.csie.org/jcoincoin/ [...] oyeur.java non ?
ou alors je vais me recoucher (ou c'est nr___d qui file des src différents des jar  :kaola: )


---------------
Plop ? plop !
Reply

Marsh Posté le 26-01-2005 à 19:56:00    

meuhoule a écrit :

\o/
ben ça marche ça http://opensvn.csie.org/jcoincoin/ [...] oyeur.java non ?
ou alors je vais me recoucher (ou c'est nr___d qui file des src différents des jar  :kaola: )


 
Attention, je fais du J2ME, là c'est CDLC 1.0, et ça a une vilaine tendance à se comporter différement ...


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 26-01-2005 à 21:12:56    

CA MARCVHE /FOU/ /FOU/ /FOU/  
 

Code :
  1. public void postMessage (String message) throws IOException {
  2.  HttpConnection c = (HttpConnection)Connector.open(addUrl);
  3.  String encodedData = "message=" + urlEncoder(message);
  4.  // Set the request method and headers
  5.         c.setRequestMethod(HttpConnection.POST);
  6.         c.setRequestProperty("If-Modified-Since",  "29 Oct 1999 19:43:31 GMT" );
  7.         c.setRequestProperty("User-Agent", userAgent);
  8.         c.setRequestProperty("Content-Language", "en-US" );
  9.         int requestSize = encodedData.getBytes().length ;
  10.         c.setRequestProperty("Content-Type","application/x-www-form-urlencoded" );
  11.        
  12.  OutputStream  os = c.openOutputStream();
  13.  os.write(encodedData.getBytes());
  14.  os.close ();
  15.  InputStream in = c.openInputStream();
  16.  int rc = c.getResponseCode();
  17. }


 
J2ME in a nutschell, un livre o'reilly de kalitai :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 26-01-2005 à 21:42:05    

et donc c'était quoi le probleme ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-01-2005 à 22:31:15    

os.close () manquant [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 26-01-2005 à 22:37:20    

et tu ne settes plus le content-length à la main (ton int requestSize est inutilisé hein?) ...voudrait-ce dire que le bidule bufferise la requete complete avant de l'envoyer?
(ô joie pour balancer des données un peu plus complexe qu'un formulaire à 5 champs)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-01-2005 à 22:38:34    

et non [:spamafote]
 


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 26-01-2005 à 22:39:02    

non quoi? [:joce]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-01-2005 à 22:43:46    

oui, j'ai viré le content-length ...


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed