4 Réponses :


0
votes

Ce semble être ce que vous 'RE RECHERCHE:

DataOutputStream dos = new DataOutputStream(response.getOutputStream());
...
int len = dos.size();


3 commentaires

Je pense que c'est votre meilleure option car je suppose que vous voulez connaître la taille de la sortie envoyée ne pas être reçue.


Mais il n'y a pas de méthode WriteObject () sur le dataOutPutStream - je devrais apporter des modifications très importantes à l'application afin de réduire tout pour les primitives.


Je reçois "java.lang.illegalstateException: getWriter () a déjà été appelé pour cette réponse"



13
votes

Si vous avez accès à l'en-tête de réponse, vous pouvez lire la longueur de contenu .

Voici un exemple d'en-tête de réponse: xxx

Vérifiez ceci: Définitions de champ d'en-tête


3 commentaires

Il apparaît que la longueur de contenu de la réponse ne doit pas être réglée. Dans mon code client, j'ai essayé UrlConnection.getContenTlength () et je continue à obtenir -1. Alors, que dois-je faire du côté serveur pour que la longueur de contenu de la réponse est calculée? Mais si je pouvais le faire sur le côté serveur, mon problème serait résolu :)


Vous pouvez l'inclure dans l'en-tête de réponse de votre serveur juste avant d'envoyer la réponse au client.


Remarque: Ceci n'est pas présent si codage de transfert: chunked .



-1
votes

J'ai finalement trouvé un moyen d'obtenir ce que je voulais: xxx

Cela m'a permis de voir la taille de la réponse sur le client. J'aimerais toujours savoir ce qu'il est sur le côté du serveur avant d'être envoyé, mais c'était la prochaine meilleure chose.


1 commentaires

Parce que je sois voté à ma propre réponse à ma propre question pour une réponse qui fait exactement ce que je veux ...



0
votes

Assumer l'utilisation de ObjectOutputStream code>, construire autour d'un java.io.bytearrayOutputStream code>: xxx pré>

et puis vous pouvez envoyer le Contenu avec P>

contentBytes.writeTo(connection.getOutputStream());


0 commentaires