Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1174 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  xmlrpclib et caractères carriagereturn (\r)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

xmlrpclib et caractères carriagereturn (\r)

n°1321694
multani
Dépressionnisé
Posté le 09-03-2006 à 12:00:20  profilanswer
 

Salut,
 
j'ai un serveur xmlrpc qui recoit des appels en provenance de clients Windows. Parmi ce que ces clients envoient, je recois des chaines de caractères multi-ligne, avec ces \n\r dedans.
Le problème, c'est que quand je fais un appel à xmlrpclib.loads pour récupérer la méthode et les paramètres de cet appel, xmlrpclib.loads me bouffe les \r :/
Comme je dois renvoyer ces infos après à d'autres clients Windows, c'est un peu génant [:dawa] (les clients m'affichent un beau caractère carré au lieu du saut de ligne  [:klem3i1]  )
 
Un bout de code pour situer le problème :
 

Code :
  1. class RequestHandler(BaseHTTPRequestHandler):
  2.     
  3.     def do_POST(self):
  4.         try:
  5.             data = self.rfile.read(int(self.headers["content-length"]))
  6.             try:
  7.                 params, method = xmlrpclib.loads(data)
  8.             except:
  9.                 self.logger.critical("Unable to parse XML-RPC call :\n=============\n%s\n=================\n", str(data))
  10.                 raise
  11. [...]


 
Dans 'data', je récupère bien les \n\r, par contre, dans 'method' juste en dessous, j'ai plus que \n ...
 
 
 
Bref, comment je pourrais faire pour éviter de bouffer ce caractère  ? :o


Message édité par multani le 09-03-2006 à 12:12:43
mood
Publicité
Posté le 09-03-2006 à 12:00:20  profilanswer
 

n°1321700
multani
Dépressionnisé
Posté le 09-03-2006 à 12:13:35  profilanswer
 

humpf, chais plus si c'est la caractère carriage return ou line feed qui disparait, mais bon.
Y'en a deux à la base, et j'en récupère qu'un, et je voudrais bien les deux, voilà [:pingouino]

n°1321713
multani
Dépressionnisé
Posté le 09-03-2006 à 12:28:12  profilanswer
 

Démonstration du problème [:dawa]


$ python
Python 2.3.5 (#2, Sep  4 2005, 22:01:42)
[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import xmlrpclib
>>> data = """<?xml version="1.0" encoding="utf-8"?>\n<methodCall>\n  <methodName>testmethod</methodName>\n  <params>\n    <param>\n      <value>\n        <string>bla\n\rbla\n\r       bla</string>\n      </value>\n    </param>\n  </params>\n</methodCall>"""
>>> xmlrpclib.loads(data)
(('bla\n\nbla\n\n\tbla',), u'testmethod')
>>>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  xmlrpclib et caractères carriagereturn (\r)

 

Sujets relatifs
comment retourner les 4 premiers caracteres d'une chaine ?[xslt] Découpage d'une chaine de caractères
Caracteres '<' et '>' dans un javascript contenu dans un XSLLecture du nombre de caracteres d'un float
déclaration chaine de caractères ???Format d'une zone de texte : problèmes de caractères
Initialisation d'un tableau de chaine de caractèresCaractères spéciaux RTF Saxon
Limiter le choix de SET a quelques caracteresCaractères mal encodés après validation d'un formulaire
Plus de sujets relatifs à : xmlrpclib et caractères carriagereturn (\r)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR