Bonjour,
Je développe une application pour smartphone Android via Rad Studio Tokyo 10.2.
Quand l'utilisateur s'inscrit via l'application, j'envoie toutes ses données (nom, prénom, adresse, email, etc...) via une api à un prestataire qui stocke les infos dans sa base de données. J'utilise le composant TRESTRequest qui doit être mal paramétré, car le prestataire enregistre les données au format quoted printable au lieu de l'UTF-8. Si j'envoie les données via Postman, il n'y a aucun souci. Idem quand je récupère des infos avec accent : mes requêtes API en méthode GET gère parfaitement les accents.
exemple : Hélène devient H=E9l=E8ne
cahier des charges pour l'api du prestataire :
- call POST
- format application/json ou form-data
- paramètres Header (token)
- paramètres body (nom, prenom, adresse, etc...)
le paramétrage des propriétés TRESTRequest par défaut :
- accept : application/json, text/plain; q=0.9, text/html;q=0.8,
- acceptcharset : UTF-8, *;q=0.8
- acceptEncoding :
- Params : chaque champ (nom prenom adresse etc) sont paramétrés ainsi :
- contentType : ctNone
- kind : pkREQUESTBODY
- options : podonotencode = false; potransient = false; poautocreated = false
- value : affectation dans le code (ex : user_restreq.Params.Items[1].Value := nom_ed.Text
j'ai tenté de paramétrer le kind des paramètres en pkGETorPOST ou le contentType en ctAPPLICATION_JSON mais le retour de l'api m'envoie une erreur (une erreur s'est produite, ou le nombre de paramètres n'est pas correct...).
Je vois bien que je n'ai pas paramétré mon composant correctement, mais j'ai beau cherché, je ne trouve aucune info pour forcer l'encodage en UTF-8.
quelqu'un à une idée ?
merci.
Partager