Как проанализировать HTTP-запрос на Java?

#java #http #httpwebrequest #http-headers #httprequest

#java #http #httpwebrequest #http-заголовки #httprequest

Вопрос:

При реализации прокси-сервера я получаю HTTP-запрос в виде строки, такой как этот:

ПОЛУЧИТЬ http://localhost:54321/x HTTP/1.1

Хост: localhost:54321

Контроль кэша: нет кэша

Существует ли встроенный класс для анализа этого запроса?

Комментарии:

1. «Встроенные» классы для этого анализа (такие как классы, реализующие HttpServletRequest ) являются частью Java Enterprise Edition и обычно интегрированы в веб-сервер, что означает, что они не подходят для ваших целей.

Ответ №1:

Я ничего не знаю о встроенной поддержке такого синтаксического анализа. Если вам действительно нужен такой анализатор, вы можете проверить эту библиотеку: http://hc.apache.org/index.html

Вот подробный пример: http://www.mail-archive.com/httpclient-user@jakarta.apache.org/msg04070.html

Ответ №2:

если «встроенный» означает JDK, я почти уверен, что нет класса, который вам подходит.

Как говорит Лукас, HttpComponents может быть полезен. Даже если нет класса, который делает именно то, что вы хотите, есть доступный код, чтобы посмотреть, как они это делают.

Хотя реализовать это самостоятельно не очень сложно. Некоторое разделение строк сделает свое дело.