Ottenere la richiesta HTTP da un processo di TIBCO BW
-
26-09-2019 - |
Domanda
Ho un processo TIBCO BW che inizia con la 'HTTP Receiver' attività.
Mi piacerebbe ottenere (tramite un costume un'attività codice Java) la dimensione della richiesta HTTP originale. (Lo scopo è quello di raccogliere, statistiche tempi di risposta misura, richiesta / risposta dimensioni, ecc.)
Vorrei misurare i dati in byte e non in caratteri, è possibile ottenere la richiesta come un array di byte, ServletInputStream o qualcosa di simile?
Soluzione
Non credo che si può ottenere la richiesta originale da codice Java - semplicemente perché non è possibile accedere all'oggetto HTTPServletRequest del HTTP ricevitore da un'attività Java. Se desideri accedere ai dati di richiesta prime, è possibile scrivere una servlet e proxy di accesso BusinessWorks tramite questo servlet proxy.
Se il vostro compito è solo quello di ottenere statistiche sulla dimensione richiesta, c'è una soluzione più semplice. È possibile utilizzare il parametro header "Content-length" per questo motivo ( http: // www.w3.org/Protocols/rfc2616/rfc2616-sec14.html ).
Il campo di entità-header Content-Length indica la dimensione del soggetto-corpo, in numero decimale di ottetti, inviato al destinatario
Content-Length è un parametro di output del HTTP ricevitore. Potrebbe essere necessario aggiungere la lunghezza di "RequestURI", i parametri di "intestazione" "PostData" e in quanto non sono parte del corpo dell'entità.
Aggiornamento: PostData parte di entità-corpo, quindi, la sua dimensione è compresa nel Content-length