|
| retour d'un Webservice REST |
| Iniciado por Sauveur CONSALVI, 04,sep. 2020 17:01 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 402 mensajes |
|
| Publicado el 04,septiembre 2020 - 17:01 |
Bonjour, J'ai réalisé un Webservice REST que j'ai mis chez KALANDA Quand je l’interroge via un projet Windev 25 sur mon PC, pas de problème Quand je fait cette même interrogation sur un projet Windev Mobile 25, ANDROID, la réponse est illisible Que l’exécution se fasse à partir de l'émulateur ou de l'installation sur le téléphone Voila la réponse

Voici le code d'appel (Identique en Windev et Windev Mobile
hRequete est httpRequest hRequete..Method = httpGet hRequete..URL = "http://www.asorco.fr/WS_Traitement_Asorco?WS_Traitement_Asorco=" + SAI_NomSociete rReponse est un httpRéponse = HTTPEnvoie(hRequete) sToto est une chaîne=BufferVersHexa(rReponse..Contenu) Info("Avec httpRequest",rReponse..Contenu) SI ErreurDétectée ALORS Erreur("Erreur lors de la requête "+ErreurInfo(errComplet)) SINON SI rReponse..StatusCode<>200 ALORS Erreur("Erreur lors de la requête "+ErreurInfo(errComplet),rReponse..DescriptionCodeEtat) SINON SELON rReponse.Contenu CAS "909" Erreur("Société non retrouvée" +SAI_NomSociete) AUTRE CAS Info("Trouvé Code société = "+rReponse..Contenu) FIN FIN FIN
Voila le code du Webservice
gsEnvoi est une chaîne gtabTableEnvoi est un tableau de chaînes gsReponse est une chaîne gsTraitement, gsCode, gsComplement est une chaîne ANSI
Procedure Webservice_Asorco()
gsEnvoi = WebserviceParamètre("WS_Traitement_Asorco") gbOK=HPasse("*","Asorco$68100") SI gbOK=Faux ALORS gsReponse= "Erreur dans la définition du mot de passe des fichiers" FIN SI WebserviceParamètre("WS_Traitement_Asorco")="" ALORS gsReponse= "Vous n'avez rien transmis" SINON gtabTableEnvoi=ChaîneDécoupe(gsEnvoi,",") SI gtabTableEnvoi.Occurrence()<>2 ALORS gsReponse="Le traitement demandé dot être constitué du code de la demande et du complément, séparé par , (une virgule) "+RC+gsEnvoi SINON gsCode=gtabTableEnvoi[1] gsComplement=gtabTableEnvoi[2] SELON gsCode CAS "SocLit" SocieteLit() RENVOYER gsReponse CAS "SocEcr" RENVOYER gsReponse AUTRE CAS gsReponse="Le traitement demandé n'est pas prévu !"+RC+gsEnvoi FIN FIN FIN RENVOYER gsReponse
Pourquoi cette anomalie ? Comment corriger ? Traduire la réponse ? Si oui, comment ? Cordialement SC
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 185 mensajes |
|
| Publicado el 05,septiembre 2020 - 14:59 |
Cà a tout l'air d'être un problème de codage du retour. En mobile, toutes les chaines sont en unicode. Si tu tapes unicode dans l'aide, tu auras toutes les fonctions pour pouvoir lire ta chaine.
Désolé de ne pas être plus précis mais j'ai utilisé une fois il y a deux ans et je devrai aussi parcourir l'aide pour t'aider.
-- Pierre |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 402 mensajes |
|
| Publicado el 06,septiembre 2020 - 08:18 |
Bonjour, C'est vrai que ces histoires d'encodage sont pénible J'ai même trouvé des plaintes a ce sujet sur le forums ! J'avais essayé plusieurs combinaison, mais vote réflexion m'a aidé Voila la bonne syntaxe
sReponse= AnsiVersUnicode(rReponse..Contenu) Cordialement SC
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 06,septiembre 2020 - 10:39 |
Bonjour,
Sauf erreur de ma part, le retour d'un WS est de l'utf8. C'est le codage par défaut du web. Donc il serait plus judicieux de faire un Utf8VersChaine() me semble-t-il...
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 402 mensajes |
|
| Publicado el 07,septiembre 2020 - 06:58 |
Bonjour, Non, j'avais essayé sans sucés ... Mais votre remarque me fait penser que j'ai oublié de préciser le type de sReponse Il faut que ce soit de l’Unicode, comme cela le code est valable sur Windev Mobile également Cordialement SC
-- Cordialement SC |
| |
| |
| | | |
|
| | | | |
| | |
|