[wd12] HTTPREQUETE méthode POST - mise à jour d'une page wiki

Le
hsteph
Bonjour à tous,

C'est mon premier post dans ce NG. Je ne suis pas un développeur pro. J'ai
cependant quelques restes d'un passé très lointain où mon métier était de
développer des applis, ..
Je m'essaie à windev 12 dans le but de faire quelques 'utilitaires'.

Je recherche à modifier le contenu d'une page wiki avec la méthode post de
httprequete.
La page de mon wiki (en maj) se présente comme ceci :
http://pmwiki.confluence.free.fr/index.php?n=Main.WikiSandbox?actioníit

En bas de page, j'ai 4 choix : (save, save&dit, preview cancel)

Les paramêtres "input" sont les suivants :

StrParam += "basetime05318858"
StrParam += "&text=toto"
StrParam += "&csum=text windev"
StrParam += "&author=steph"
StrParam += "&diffclass=minor"

Res =
HTTPRequête("http://pmwiki.confluence.free.fr/index.php?actioníit?n=Main.WikiSandbox?","","",StrParam)

Je coince sur le "comment valider l'action SAVE" sachant que j'ai 4 choix
différents :

<input type='submit' name='post' value=' Save ' class='e_button'
accesskey='s' />
<input type='submit' name='postedit' value=' Save and edit '
class='e_button' accesskey='u' />
<input type='submit' name='preview' value=' Preview ' class='e_button'
accesskey='p' />
<input type='submit' name='cancel' value=' Cancel ' class='e_button' />

Merci pour vos commentaires éventuels !

Stéphane
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
hsteph
Le #14524251
"hsteph" wrote :

Je coince sur le "comment valider l'action SAVE" sachant que j'ai 4 choix
différents :

<input type='submit' name='post' value=' Save ' class='e_button'
accesskey='s' />
<input type='submit' name='postedit' value=' Save and edit '
class='e_button' accesskey='u' />
<input type='submit' name='preview' value=' Preview ' class='e_button'
accesskey='p' />
<input type='submit' name='cancel' value=' Cancel ' class='e_button' />

Merci pour vos commentaires éventuels !



pour info, il faut ajouter "&post=+Save+" dans le paramètre <message à
envoyer> de httprequete.
Cela m'amène à une question complémentaire : comment encoder le text (body)
dans la méthode POST ?

J'ai bien vu l'existence de la fonction URLEncode() mais cette fonction
n'encode que l'URL (et pas le texte passé dans la méthode POST)

si mon texte est le suivant :
La chaine contient le caractère & et "ceci", ...

le texte encodé est :
La+chaine+contient+le+caract%C3%A8re+%26+et+%22ceci%22%2C+...

Avez vous une piste ?

Merci

Stéphane
patrice
Le #14524101
hsteph a écrit :
"hsteph" wrote :

Je coince sur le "comment valider l'action SAVE" sachant que j'ai 4 choix
différents :

<input type='submit' name='post' value=' Save ' class='e_button'
accesskey='s' />
<input type='submit' name='postedit' value=' Save and edit '
class='e_button' accesskey='u' />
<input type='submit' name='preview' value=' Preview ' class='e_button'
accesskey='p' />
<input type='submit' name='cancel' value=' Cancel ' class='e_button' />

Merci pour vos commentaires éventuels !



pour info, il faut ajouter "&post=+Save+" dans le paramètre <message à
envoyer> de httprequete.
Cela m'amène à une question complémentaire : comment encoder le text (body)
dans la méthode POST ?

J'ai bien vu l'existence de la fonction URLEncode() mais cette fonction
n'encode que l'URL (et pas le texte passé dans la méthode POST)

si mon texte est le suivant :
La chaine contient le caractère & et "ceci", ...

le texte encodé est :
La+chaine+contient+le+caract%C3%A8re+%26+et+%22ceci%22%2C+...

Avez vous une piste ?




oui, en post (contrairement au get), les données sont passées dans les
headers et non dans l'url
donc pas besoin d'encodage
hsteph
Le #14524041
"patrice" wrote :

oui, en post (contrairement au get), les données sont passées dans les
headers et non dans l'url
donc pas besoin d'encodage



J'ai eu besoin de faire ceci tout de même sur le texte à transmettre :

sStrText = Remplace(sStrText,"%","%25")
sStrText = Remplace(sStrText,"&","%26")
sStrText = Remplace(sStrText,"=","%3D")

Une autre curiosité : le User-Agent est passé à vide dans le POST, ... alors
qu'il est renseigné automatiquement dans le GET
Il faut faire un truc du genre EnteteSupplementaire = "User-Agent: PC SOFT
Framework"+RC pour initialiser User-Agent à la même valeur.

autre détail :
a) si l'on ne fait pas de RC sur EnteteSupplementaire , windev se bloque
lors de l'execution de httprequete, ...
b) la syntaxe <Message à envoyer> : Donner tous les "INPUT=valeur" (sans
espace) séparé par des RC : NomParametre=Valeur"+RC+ ... ne fonctionne pas.
Je suis passé par le mécanisme &param1=valeur&param2=valeur etc ...

Est-ce un bug ? une caractéristique ?

Merci pour vos infos.

Stéphane
patrice
Le #14523991
si tu utilise &param= alors tu doit quoter (utilise plutot urlencode que des
replace sauvages)
mais tu n'as aucune garantie (personne n'oblige un formulaire post à
accepter les parametres en get)

vaux mieux coder les posts dans les headers
essaye ca : (message de 'patrice')
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/a42c02f54c6f9c95/b8add3bea7ec50e8?hl=fr&lnk=st&q=WD9++httprequete++boundary#b8add3bea7ec50e8



"hsteph" news:47ed00cc$0$21142$

"patrice" wrote :

> oui, en post (contrairement au get), les données sont passées dans les
> headers et non dans l'url
> donc pas besoin d'encodage

J'ai eu besoin de faire ceci tout de même sur le texte à transmettre :

sStrText = Remplace(sStrText,"%","%25")
sStrText = Remplace(sStrText,"&","%26")
sStrText = Remplace(sStrText,"=","%3D")

Une autre curiosité : le User-Agent est passé à vide dans le POST, ...


alors
qu'il est renseigné automatiquement dans le GET
Il faut faire un truc du genre EnteteSupplementaire = "User-Agent: PC SOFT
Framework"+RC pour initialiser User-Agent à la même valeur.

autre détail :
a) si l'on ne fait pas de RC sur EnteteSupplementaire , windev se bloque
lors de l'execution de httprequete, ...
b) la syntaxe <Message à envoyer> : Donner tous les "INPUT=valeur" (sans
espace) séparé par des RC : NomParametre=Valeur"+RC+ ... ne fonctionne


pas.
Je suis passé par le mécanisme &param1=valeur&param2=valeur etc ...

Est-ce un bug ? une caractéristique ?

Merci pour vos infos.

Stéphane




hsteph
Le #14523981
"patrice" wrote :

vaux mieux coder les posts dans les headers
essaye ca : (message de 'patrice')
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/a42c02f54c6f9c95/b8add3bea7ec50e8?hl=fr&lnk=st&q=WD9++httprequete++boundary#b8add3bea7ec50e8



thanks, je crois que cela peut servir à faire du téléchargement de fichier
également.
Merci

Stéphane
patrice
Le #14520691
"hsteph" news:47ed18da$0$21143$

"patrice" wrote :

> vaux mieux coder les posts dans les headers
> essaye ca : (message de 'patrice')
>


http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/a42c02f54c6f9c95/b8add3bea7ec50e8?hl=fr&lnk=st&q=WD9++httprequete++boundary#b8add3bea7ec50e8

thanks, je crois que cela peut servir à faire du téléchargement de fichier
également.



plutot de l'upload, mais ca a tendance à déconner si ton fichier contient
des codes 0 (httprequete utilise des chaines et non des buffer)
Publicité
Poster une réponse
Anonyme