Je développe une application qui utilise webservices en python, les deux côtés (serveur et client) sont développés en Python et utilise SOAPpy pour les webservices, mais, vous le savez, le xml est trop verbeux, je veux pour le compresser, mais pour autant que j'ai cherché dans google je ne peux pas trouver quelque chose d'utile.xml compressé sur soapp
Répondre
Vous pouvez ajouter des en-têtes HTTP à l'appel SOAPpy comme indiqué here (cet exemple envoie des cookies, mais vous pouvez le généraliser pour ajouter différents en-têtes) - pour demander une compression, ajouter Accept-Encoding: gzip
. Le serveur Web (pas le serveur d'application, comme votre "serveur SOAPpy" en Python, mais le serveur HTTP sur lequel il s'exécute, par exemple Apache) devrait fournir la compression et avoir dans la réponse un en-tête Content-Encoding: gzip
pour confirmer que (si ne fonctionne pas correctement, vous devrez sous-classer la classe de transport et insérer la compression vous-même - je n'ai pas d'installation SOAPpy à portée de main pour vérifier). Le bit manquant est, comment tromper votre SOAPpy.SOAPProxy
en décompression de la charge utile avant de poursuivre le traitement - et la bonne approche est de nouveau à sous-classe HTTPTransport
, tout comme pour la partie d'en-tête; dans l'URL ci-dessus, regardez la ligne data = response.read()
et pensez à vérifier les en-têtes (pour confirmer que l'encodage du contenu est gzip comme requis) et à décompresser si nécessaire.
Pour faire face à la compression gzip et la décompression, bien sûr, vous pouvez utiliser le module zlib de la bibliothèque standard de Python (pas le module gzip
, ce qui ajoute à zlib
le traitement des métadonnées d'en-tête pour faire et lire .gz
fichiers - vous êtes ne traite pas des fichiers .gz
mais des flux compressés avec l'algorithme gzip
, et c'est le travail de zlib
).
Merci, vraiment utile. J'avais déjà vu la recette, mais je ne l'ai pas vraiment comprise, pas que ça soit un peu plus clair. Merci encore. – markuz
- 1. Création d'un dossier compressé (ou compressé)
- 2. DirectShow + AVI non compressé
- 3. Générer et servir gz compressé dans ASP.NET
- 4. Figure comment il est compressé?
- 5. ASP.NET Créer un fichier zip à télécharger: le dossier compressé compressé est invalide ou corrompu
- 6. format de fichier compressé pour Iphone
- 7. PHP - Envoi gzip JS/CSS compressé
- 8. Sauvegardes SQL dans un dossier compressé
- 9. Lecture à partir de l'index lucene compressé
- 10. MSI généré par WiX n'est pas compressé
- 11. Comment extraire lire un fichier compressé?
- 12. sur xml
- 13. Comment écrire des fichiers GeoTIFF dans Delphi, éventuellement compressé
- 14. Décompression d'un flux compressé vers un emplacement réseau
- 15. Comment convertir une série d'images JPEG en AVI non compressé sur l'iPhone?
- 16. boost filtering_istream gzip_decompressor taille de fichier non compressé
- 17. Question sur l'analyse XML
- 18. php XPath sur XML
- 19. xml cache sur iphone
- 20. Ecriture XML sur Android
- 21. IOException sur Deserializeling XML
- 22. Lire XML sur VB.net
- 23. Explosé (déballé) Fichier EAR ou fichier EAR compressé?
- 24. Comment décompresser un fichier compressé avec fusecompress/lzo?
- 25. ajout dans un fichier compressé à l'aide GZipStream
- 26. ASP.NET MVC retour fichier compressé avec l'extension FileResult manque
- 27. Comment savoir si un fichier est compressé avec gzip?
- 28. android pourquoi je ne peux pas récupérer un bitmap compressé?
- 29. Comment créer un fichier tar compressé complet avec Python?
- 30. WPF - Utilisation de DynamicResource dans un fichier XAML non compressé
À la fin, je n'ai pas vraiment utilisé SOAPpy, mais xmlrpc, la façon compressée est dans mon blog: http://tinyurl.com/2v4aokl (Compressé XMLRPC sur python) – markuz