Question

J'ai un processus TIBCO BW qui commence par l'activité 'HTTP récepteur'.

Je voudrais obtenir (via une activité personnalisée du code Java) la taille de la requête HTTP d'origine. (Le but est de recueillir des statistiques, mesurer les temps de réponse, de tailles demande / réponse, etc.)

Je voudrais mesurer les données en octets et non en caractères, est-il possible d'obtenir la demande comme un tableau d'octets, ServletInputStream ou quelque chose de similaire?

Était-ce utile?

La solution

Je ne pense pas que vous pouvez obtenir la demande initiale à partir du code Java - tout simplement parce que vous ne pouvez pas accéder à l'objet HttpServletRequest du récepteur HTTP d'une activité Java. Si vous souhaitez accéder aux données de la requête brute, vous pouvez écrire un servlet proxy et BusinessWorks d'accès via ce servlet proxy.

Si votre tâche est seulement d'obtenir des statistiques sur la taille de la demande, il y a une solution plus simple. Vous pouvez utiliser le paramètre d'en-tête "Content-length" pour cette raison ( http: // www.w3.org/Protocols/rfc2616/rfc2616-sec14.html ).

  

Le champ Content-Length-tête de l'entité indique la taille du corps d'entité,   en nombre décimal d'octets, envoyé au destinataire

Content-length est un paramètre de sortie du récepteur HTTP. Vous devrez peut-être ajouter la longueur de « RequestURI », « PostData » et paramètres « En-tête » car ils ne font pas partie du corps de l'entité.


Mise à jour: PostData est une partie de corps d'entité, donc sa taille est incluse dans le contenu de longueur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top