Bonjour,

Je dois faire un traitement sur X3 en V6 qui appelle un webservices externe en utilisant la méthode POST. Pour ce faire, j’ai installé le composant Java Bridge Server qui contient un composant client HTTP.

Dans mon traitement, j'instancie le client HTTP via le code ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
	local Char    WJBRESULT(250)
	WJBRESULT = "com.sage.x3.runtime.bundle.httpclient.CServiceHttpClientImpl:newHttpClient"
 
        Local Char    WHTTPCLI(30)
	WHTTPCLI = Funciu = WJBRESULT Using [YJBS] With ()

Si je fais un test sur une méthode GET, elle fonctionne parfaitement. Je récupère bien la valeur "MyTest" retournée par le serveur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
        Local Char    WURL (250)
        WURL = "http://xxx:20000/tests/MyTest"
 
	WJBRESULT = WHTTPCLI+":get"
	WHTTPREPLY = Funciu = WJBRESULT Using [YJBS] With (WURL)
 
	#WHTTPREPLY contient en retour "MyTest"
Par contre, je ne parviens à écrire un traitement en utilisant une méthode POST. Je ne sais pas comment définir les paramètres WPARAM2 + WPARAM3 + WPARAM4 nécessaires aux instructions ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
        Local Char    WURL (250)
        WURL = "http://xxx:20000/tests"
 
	WJBRESULT = WHTTPCLI+":post"
	WHTTPREPLY = Funciu = WJBRESULT Using [YJBS] With (WURL, WPARAM2, WPARAM3, WPARAM4)
Tous mes essais me renvoient systématiquement soit la valeur « {} », soit le code retour 400 (bad resquest), soit le code retour 415 (Unsupported Media Type).

Est-ce que quelqu'un aurait des exemples de traitements V6 permettant d'appeler une méthode POST . Je précise bien V6 car je sais qu'à partir de la V7, il existe des traitements dans Syracuse qui s'occupent de ça.

Merci pour votre aide.

ManuM21