Nous recevons des données POST de fichiers binaires xml + arbitraires (comme des images et de l'audio) à partir d'un périphérique qui ne nous donne qu'un codage multipart/mixte.peut cherrypy recevoir des POST multipart/mixed out of the box?
J'ai configuré un gestionnaire cherrypy upload/POST pour notre récepteur. J'ai réussi à lui permettre de faire un nombre arbitraire de paramètres en utilisant multipart/form-data. Cependant, lorsque nous essayons d'envoyer les données mixtes, nous n'obtenons aucun traitement. Ainsi, lors de la soumission de données multipart/form, args et kwarg sont bien définis.
Les arguments sont les champs de formulaire, kwargs = hash de vars et les valeurs. Lorsque je soumets multipart/mixed, args et kwargs sont vides, et j'ai juste cherrypy.request.rfile comme information POST brute.
Ma question est, est-ce que cherrypy a un gestionnaire intégré pour gérer l'encodage multipart/mixed et chunked pour POST? Ou aurai-je besoin de surcharger le cherrypy.tools.process_request_body et de lancer mon propre décodeur?
Il semble que le serveur wsgi intégré avec cherrypy gère cela dans le cadre de la spécification HTTP/1.1, mais je n'ai pas pu trouver de documentation dans cherrypy pour accéder à cette fonctionnalité.
... à clarifient
J'utilise dernière version 3.1.1 ou ainsi de CherryPy.
La création d'un formulaire par défaut implique simplement de définir des paramètres dans la fonction de téléchargement.
Pour la multipart/form-data, j'ai appelé boucle -F [email protected] -F param2 = someText -F [email protected] http://destination:port/upload
Dans cet exemple, je reçois :
args = ['param1','param2','param3]
kwargs = {'param1':CString<>, 'param2': 'sometext', 'param3':CString<>}
Lorsque vous essayez de soumettre le multipart/mixed, j'essayé de regarder le request.body, mais continué à obtenir aucun pour cela, quel que soit le réglage de la transformation du corps.
Les commentaires que nous recevons vient en ce que:
user-agent:UNTRUSTED/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
content-language:en-US
content-length:565719
mime-version:1.0
content-type:multipart/mixed; boundary='newdivider'
host:192.168.1.1:8180
transfer-encoding:chunked
--newdivider
Content-type: text/xml
<?xml version='1.0' ?><data><Stuff>....
etc...etc...
--newdivider
Content-type: image/jpeg
Content-ID: file://localhost/root1/photos/Garden.jpg
Content-transfer-encoding: binary
<binary data>
J'ai un soupçon furtif que le multipart/mixed est le problème qui est cherrypy me donne juste le rfile. Notre objectif est de faire en sorte que Cherrypy traite le corps dans ses parties avec un traitement minimal du côté de la réception (c.-à-d., Laissez Cherrypy faire sa magie). Si cela nous oblige à être plus dur sur le format d'envoi pour être un type de contenu que Cherrypy aime, alors qu'il en soit ainsi. Quels sont les formats acceptés? Est-ce seulement multipart/form-data?
quelle version de cherrypy, et pouvez-vous faire un exemple de formulaire HTML? – llimllib
Au lieu de rfile, regardez cherrypy.request.body lorsque le Content-Type n'est pas form-data. – fumanchu