2010-01-19 5 views
0

J'ai un service Web .NET qui renvoie le code XML et je souhaite le compresser avant de l'envoyer.Résultat de la compression du service Web

Il y a deux façons que je peux faire, mais je l'aurais plutôt de ne pas le faire dans le code.

Puis-je configurer IIS pour gzip tout le contenu retourné par mon WebService? Ce n'est pas appelé depuis un navigateur.

L'autre question est de savoir si ce service Web est consommée par un client Java - cela affectera quoi que ce soit?

J'imagine que le proxy client aura toujours besoin de décompresser, mais il ne devrait pas y avoir de problème si j'utilise gzip - c'est un protocole universel, non?

Répondre

3

La méthode standard pour faire ce genre de chose est d'utiliser la compression gzip sur HTTP car il est directement pris en charge par le protocole. Tant que votre client soutient cela, vous devriez être prêt à partir.

Si vous écrivez le client à partir de zéro avec des outils plus fondamentaux, vous devrez peut-être ajouter une manipulation pour cela vous-même: un bon exemple de ceci est affiché here (python). Je pense que beaucoup de bibliothèques client SOAP ont un support intégré pour cela, mais vous devrez essayer le vôtre pour être sûr: si elles s'appuient sur une bibliothèque HTTP de niveau inférieur pour faire leur travail, selon toute vraisemblance ça devrait juste marcher.

+0

Voilà ce que je me attends - mais ce qui se passe au côté client? Doivent-ils écrire du code pour décompresser explicitement la requête ou un proxy SOAP généré le ferait-il pour eux? par exemple. selon ce lien, ils auraient besoin d'écrire du code - http://janetandkevin.com/blog/articles/189.aspx – Duncan

+0

Comme je le dis, dépend du client: certains clients utiliseront une bibliothèque HTTP de bas niveau qui lira le en-têtes et faire la bonne chose. D'autres pourraient ne pas et dans ces cas, vous pourriez avoir besoin de faire un peu de travail supplémentaire. Quoi qu'il en soit, vous pouvez toujours faire en sorte que votre code côté serveur examine les en-têtes accept du client pour savoir s'il prend en charge gzip ou non. – jkp

+0

Voir §14.3 Accept-Encoding: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html – trashgod

Questions connexes