PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 23 → Photo de WM23 à Webservice REST WD23
Photo de WM23 à Webservice REST WD23
Débuté par Pierre, 30 oct. 2018 22:18 - 4 réponses
Membre enregistré
15 messages
Posté le 30 octobre 2018 - 22:18
Bonjour,

Je souhaite envoyer une photo à un Webservice REST qui est chargé de l'enregistrer dans un dossier.

Avec le code ci-dessous, j'y arrive.

WM23
bufPictureToCode est un Buffer
bufPictureToDecode est un Buffer

MaQuestion est un restRequête
MaRéponse est une restRéponse
CléDecryptageClaire est une chaîne ANSI = "kikoolol"
bufCléDecryptageClaireHashé est un Buffer = HashChaîne(HA_MD5_128,CléDecryptageClaire)
bufDataToSend est un Buffer


bufPictureToCode=fChargeBuffer(ComplèteRep(fRepExe())+"Tmp2.jpg")


MaQuestion.URL="http://i7-c/photomission"
MaQuestion.Contenu=CrypteStandard(bufPictureToCode,bufCléDecryptageClaireHashé,crypteAES128)
MaQuestion.Méthode=httpPost
MaQuestion.ContentType=typeMimeTexte


MaRéponse=RESTEnvoie(MaQuestion)
SI ErreurDétectée ALORS
Erreur(ErreurInfo())
FIN


WD23
bufParaReçu est un Buffer

CléDecryptageClaire est une chaîne ANSI = "kikoolol"
CléDecryptageClaireHashé est un Buffer = HashChaîne(HA_MD5_128,CléDecryptageClaire)

//Le buffer reçu contient uniquement le fichier jpg
bufParaReçu=WebserviceParamètre(paramBuffer)

ChaineDecrypter est un Buffer = DécrypteStandard(bufParaReçu,CléDecryptageClaireHashé,crypteAES128)
fSauveBuffer("Recu.jpg",ChaineDecrypter)
RENVOYER Vrai


Mais j'aimerais envoyer en même temps d'autres infos que je placerais dans une structure.

Si je fais dans WM23
pour la structure
UnePhoto est une structure
Nom est une chaine
ContenuImage est une chaine (avec ma photo cryptée)
fin

Comment dois-je faire pour sérialiser en json cette structure et l'envoyer à mon Webservice pour récupérer ma photo et les infos ?

J’essaye d'affecter à ma structure les infos Nom et ma photo cryptée, ensuite sérialiser le tout en JSON

Dans mon WS, je récupère le buffer, je dé-sérialise la structure JSON et ensuite je décrypte la photo. Et là, je ne récupère que les infos, pas la photo.
Je pense que ce doit être un problème de codage mais je ne sais plus trop quoi essayer.

Si, dans WM, je fais celà et que je dé-sérialise à la suite, je récupère bien ma photo. Ce qui me conforte dans l'idée que c'est un souci de format entre les 2 plate-forme.


Avez-vous une idée ?

Merci d'avance
Cordialement
Pierre
Posté le 31 octobre 2018 - 08:51
Bonjour,

Json ne peut pas sérialisé l'image A ce que je sache. L'image peut être converti en binaire. Pour contourner cela, tu peux faire2 appels, le second n'ayant lieu que si le premier a réussi. Par exemple tu récupère l'ID que ton API a renvoyé et tu me mets dans le deuxième appel. C'est ce que je fais et ça marche.
Posté le 31 octobre 2018 - 19:51
Ralph a émis l'idée suivante :
Bonjour,

Json ne peut pas sérialisé l'image A ce que je sache. L'image peut être
converti en binaire. Pour contourner cela, tu peux faire2 appels, le second
n'ayant lieu que si le premier a réussi. Par exemple tu récupère l'ID que ton
API a renvoyé et tu me mets dans le deuxième appel. C'est ce que je fais et
ça marche.


Merci pour l'info, c'est une piste à laquelle je n'ai pas pensé.

Je vais aussi faire des tests de performance si la photo est transmise
au webservice ou dur un fpt et ensuite traitée par le WS sur ordre du
client

Bonne soirée

--
Cordialement,
Pierre
Posté le 01 novembre 2018 - 07:31
Pierre avait prétendu :
> HA_MD5_128

Tu as essayé en Base64
Posté le 01 novembre 2018 - 07:32
Pierre a formulé ce mardi :
> Bonjour,

CléDecryptageClaire est une chaîne ANSI = "kikoolol"
CléDecryptageClaireHashé est un Buffer =
HashChaîne(HA_MD5_128,CléDecryptageClaire)


un MD5 n'est pas réversible à ma connaissance...