Page 1 sur 1

[Resolu] décoder Request_Content avec POST

MessagePublié: 22 Sep 2010 à 16:07
par seroa
Bonjour,

Existe t-il une fonction en Java pour récupérer mes paramètres passé en ajax via la methode POST.

toutes mes variables sont encodées.

Avec la methode GET, j'utilisait

context.getItemValueString("Query_String_Decoded");

Mais la je suis obligé d'utiliser

context.getItemValueString("Request_Content");

et je ne vois pas comment réucpérer mes parametres.

Merci.

MessagePublié: 22 Sep 2010 à 19:44
par Michael DELIQUE
salut

tout dépend comment tu as passé tes données dans le request_content.

pour ma part j'utilise un version fait mains du @urlquerystring

MessagePublié: 23 Sep 2010 à 07:07
par seroa
Salut,

J'ai passé mes données via la propriété parameters, avec la methode POST.

ça ressemble à ça : ref=205215%3F%3F&poster=Test%20Essai&date=22%2F09%2F2010 etc

J'ai essayé de trouver une fonction toute prête en Java mais je n'ai pas trouvé.

Merci.

MessagePublié: 23 Sep 2010 à 07:35
par Michael DELIQUE
voila les version Lotus Script, si tu veux la recodé en Java http://forum.dominoarea.org/urlquerystr ... 19218.html

ou alors un evalute de @urlQuerystring

MessagePublié: 23 Sep 2010 à 08:49
par amahi
Salut,

J'avait fait un truc du genre qui marchait bien pour moi:
Dans le notesMain
Code : Tout sélectionner

Item item = doc.getFirstItem("Request_Content");
String champ = item.getValueString();
Vector v = getVectorFromString(champ, "le nom de ton champ");


La methode qui convertie ensuite le contenu du post en vecteur:
Code : Tout sélectionner
   private Vector getVectorFromString(String chaine, String clef) {
      Vector v=new Vector();

      int longueur = chaine.length();

      int position = chaine.indexOf(clef);
      if(position > 0) {
      chaine  = chaine.substring(position, longueur);
      
      while (chaine.indexOf(clef) >-1) {
         int deb=chaine.indexOf("=");
         int fin= chaine.indexOf("&");
         v.add(chaine.substring(deb+1,fin));
         
         chaine = chaine.substring(fin+1, chaine.length());
      }
      }
      return v;
   }


J'ai fait ça y'as 4/5 ans et ça marche nickel pour moi. Je suis sur que ce code peut etre optimisé mais comme il marche et que j'ai autre chose a faire ^^

MessagePublié: 23 Sep 2010 à 10:41
par seroa
Merci beaucoup,

J'avais fais quelque chose avec des StringTokenizer, mais ça planté lorsqu'un champ été vide car le StringTokenizer ne gère pas les vides.

Mais ta solution marche super.

Merci.