PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → webservice REST json et type image
webservice REST json et type image
Débuté par GILDAS CRAMOIS, 21 juil. 2016 15:37 - 4 réponses
Membre enregistré
57 messages
Popularité : +2 (2 votes)
Posté le 21 juillet 2016 - 15:37
Bonjour,

Je souhaite utiliser des Webservice de Type REST pour envoyer et afficher des données.

Parmi mes structures, l'une est composé d'une variable de Type Image car le fichier de données comprends un type MEMO BINAIRE.

J'ai essayé de lancer l'affichage des mes enregistrements les j'ai un message d'erreurs du type suivant :

Que s'est-il passé ?
La sérialisation JSON n'autorise pas les éléments de type 'Image'.

Code erreur : 2612
Niveau : erreur fatale (EL_FATAL)

Avez vous rencontré ce type de problèmes ? Avez vous une solution ?

J'ai besoin de lire et mettre à jour ce champ image .

--
CRAM49
Posté le 21 juillet 2016 - 15:49
Bonjour Gildas,

la méthode habituelle pour ce genre de chose est de transformer le
contenu binaire (dans ton cas une image) en contenu texte par un
encodage en base64 avec la fonction crypte (et de décoder à l'arrivée,
bien sur). C'est ce que je fais dans WXReplication, par exemple.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com
Membre enregistré
57 messages
Popularité : +2 (2 votes)
Posté le 22 juillet 2016 - 14:36
Fabrice,


Donc si j'ai bien compris il faut charger le memo dans un buffer et ensuite le crypter en base 64.
Faire Appel au Webservice et ensuite le décrypter comme ce desssous ?




/ Encodage en base 64 d'une chaîne
bufBase64 est un Buffer = Crypte(bufAEncoder, "", compresseAucun + crypteAucun, encodeBASE64)



// Décodage de données encodées en base 64
bufDecoder est un Buffer = Décrypte(bufBase64, "", crypteAucun, encodeBASE64)


--
CRAM49
Posté le 22 juillet 2016 - 14:55
yep

Le 7/22/2016 à 6:36 AM, GILDAS CRAMOIS a écrit :
Fabrice,


Donc si j'ai bien compris il faut charger le memo dans un buffer et
ensuite le crypter en base 64. Faire Appel au Webservice et ensuite le
décrypter comme ce desssous ?




/ Encodage en base 64 d'une chaîne
bufBase64 est un Buffer = Crypte(bufAEncoder, "", compresseAucun +
crypteAucun, encodeBASE64)



// Décodage de données encodées en base 64 bufDecoder est un Buffer =
Décrypte(bufBase64, "", crypteAucun, encodeBASE64)


--
CRAM49
Membre enregistré
57 messages
Popularité : +2 (2 votes)
Posté le 26 juillet 2016 - 08:44
Bonjour,

C'est ok tout fonctionne. J'arrive à récupérer mon image via le WEBSERVICE en passant par un cryptage.

Pour contre, si j'utilise une structure la désérialisation n'aboutie pas. Si j'ai la structure constituée d'un attribut avec la chaine cryptée, désérialisation plante alors que la même structure sans cette chaine fonctionne correctement.

Dois, je créé une fonction an parallèle juste pour traiter l'image dans mon WebService. ?

MErci

--
CRAM49