Возможно ли получить полные заголовки или размер заголовков? - PullRequest
1 голос
/ 02 марта 2011

Возможно ли, чтобы сервлет Java извлекал полный текст заголовка запроса из заголовка ответа, а не выполнял метод getHeader () по отдельности? Или можно ли получить полный размер в байтах этих заголовков?

Причина, по которой я спрашиваю это, заключается в том, что я хочу отслеживать использование данных между сервлетом и устройством, отправляющим запрос, и из-за большого количества запросов, которые будут отправляться с разных устройств, я хочу иметь возможность получить точное представление того, сколько байтов было использовано только заголовками.

Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 02 марта 2011

API не предоставляет способ получить все заголовки одним вызовом - проверьте Javadocs:

http://download.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

Вот примеркак вы могли бы получить все заголовки (без утомительных проверок нуля).

private MultiValueMap getAllHeaders(HttpServletRequest request) {
    MultiValueMap allHeaders = new MultiValueMap();
    List<String> headerNames = Collections.list((Enumeration<String>)request.getHeaderNames());
    for (String headerName : headerNames) {
        allHeaders.putAll(headerName, Collections.list((Enumeration<String>) request.getHeaders(headerName)));
    }

    return allHeaders;
}

Как только вы используете модели сервлетов Java, вы не можете получить размер заголовка в байтах, не восстанавливая его (т.е. перебирайте getAllHeaders идобавьте <header name>: <header value>), вам также потребуется добавить табличку GET HTTP 1/1.1 и т. д. Определенно выполнимо, если вам абсолютно необходимо решение на Java, но у меня возникает ощущение, что вам следует подумать о том, чтобы вытолкнуть эту логику из вашего Java-приложения впрокси.

0 голосов
/ 02 марта 2011

Не думаю, что ты сможешь это сделать.Или, по крайней мере, не без взлома реализации контейнера сервлетов.

Возможно, вам следует установить прокси-сервер между HTTP-клиентом и сервером и выполнить измерение там.размеры заголовков / полей в запросах и ответах.Я бы подумал, что это даст вам пару процентов ... что большинство людей сказали бы, что это достаточно хорошо.

...