REST, méthode POST, valeur du stream, doit il être encodé ? [C#] - C#/.NET managed - Programmation
Marsh Posté le 14-03-2012 à 07:13:17
Merci Fred pour cette réponse précise.
Je me doutais de quelque chose comme ça, mais j'avais eu un problème de décodage d'une chaîne car certains caractères ne correspondaient pas à du base64, mais je ne me souviens plus du cas exact, du coup l'erreur venait peut être d'ailleurs.
Marsh Posté le 13-03-2012 à 19:58:40
Bonjour,
J'ai une question existentielle sur l'appel de la méthode POST en HTTP et le fait d'alimenter le stream.
J'appel un web service REST, je créais l'entête HTTP, j'indique la méthode POST et j'alimente le stream avec du XML.
Le service récupère l'appel, le stream, et retrouve le contenu XML.
Cependant, lorsque j'effectue l'appel, je récupère le stream, et l'alimente avec un tableau byte[].
Et donc à aucun moment je ne l'ai encodé en UTF8, ni même encodé en base64.
Le serveur récupère le tout et lui ne le convertit pas non plus et tout marche.
Je me pose surtout la question de si je ne suis pas en train de tester des cas où tout est ok, mais que plusieurs autres poseront des problèmes si l'encodage n'est pas précisé et la conversion en base64 n'est pas effectuée.
Si je devais développer ce client et ce service dans les règles de l'art, serait il, systématiquement nécessaire de passer au moins par une conversion en base64, voir l'encoder en utf8 ?
Si oui, j'ai tout de même un souci, car le stream de l'appel web prend en paramètre un tableau de byte[], et une chaîne de caractère base64 se convertit en string ou en char[], j'aurai donc une autre conversion vers un tableau de byte[],
Ce qui me semble vraiment tordu (dans certains cas, j'aurai un tableau de byte[] que j'encode en utf8, convertit en base 64, pour ensuite essayer de le convertir dans tableau de byte[] ).
Je ne sais pas si je suis très clair.
Cependant sur le web, 95% du temps les mecs s'en foutent, convertissent directement en tableau de byte[], sans préciser d'encodage ni de conversion en base64.
Auriez vous une suggestion ?
---------------
"PAR LE POUVOIR DU CRÂNE ANCESTRAL, JE DETIENS LA FORCE TOUTE PUISSANTE".