Frage

Ich habe einen TIBCO BW Prozess, der mit der 'HTTP-Empfänger' Aktivität gestartet wird.

würde ich erhalten möchte (über eine benutzerdefinierte Java-Code-Aktivität), um die Größe der ursprünglichen HTTP-Anforderung. (Der Zweck ist, zu sammeln Statistiken, misst Ansprechzeiten, Request / Response-Größen etc.)

Ich mag die Daten in Bytes messen und nicht in Zeichen ist es möglich, die Anforderung zu erhalten als Byte-Array, ServletInputStream oder ähnliches?

War es hilfreich?

Lösung

Ich glaube nicht, dass Sie die ursprüngliche Anforderung von Java-Code zu bekommen - einfach, weil Sie nicht das HttpServletRequest Objekt des HTTP-Empfängers aus einer Java-Aktivität zugreifen können. Wenn Sie die rohen Anforderungsdaten zugreifen möchten, können Sie einen Proxy-Servlet und Zugang Business über diesen Proxy-Servlet schreiben.

Wenn Sie Ihre Aufgabe nur Statistiken über den Antrag Größe zu bekommen, gibt es eine einfachere Lösung. Sie können die "Content-length" Header-Parameter aus diesem Grund verwenden ( http: // www.w3.org/Protocols/rfc2616/rfc2616-sec14.html ).

  

Das Content-Length-Entity-Header-Feld gibt die Größe des Entity-Body,   in Dezimalzahl von Oktetts, an den Empfänger gesendet

Content-length ist ein Ausgabeparameter des HTTP-Empfängers. Möglicherweise müssen Sie die Länge von „RequestURI“, „Postdata“ und „Header“ Parameter hinzufügen, da sie nicht Teil des Entitätskörpers sind.


Update: Postdata Teil des Entity-Body, also seine Größe in Content-length enthalten ist

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top