Установка заголовка запроса в Java - PullRequest
0 голосов
/ 03 января 2012

Есть ли способ изменить или установить заголовок запроса внутри класса действия? Я хочу изменить его, или вы можете сказать, что я хочу поместить флаг в заголовок запроса так же, как мы помещаем значения в «атрибут» и параметры.

Ответы [ 7 ]

3 голосов
/ 03 января 2012

Вы можете сделать это, используя HttpServletRequestWrapper . Но это довольно грязное решение. Неужели нет других способов решить вашу проблему?

1 голос
/ 04 января 2012

Ответ на этот вопрос зависит от того, какую проблему вы пытаетесь решить.

Один из ваших комментариев предполагает, что вы пытаетесь проверить;в этом случае у вас есть два основных варианта:

  1. Использовать фиктивный запрос (тестирование в стиле юнитов).
  2. Изменить заголовок с клиента (тестирование в стиле интеграции).

Для тестирования на реальных клиентах установите заголовки на стороне клиента.

Для насмешливых взаимодействий с клиентами вы должны использовать какую-то форму имитации.Например, StrutsTestCase предоставляет классы MockStrutsTestCase (вне контейнера) и CactusStrutsTestCase (внутри контейнера), позволяющие легко манипулировать свойствами и характеристиками запроса.

1 голос
/ 03 января 2012

Если вы пытаетесь открыть URL-соединение с помощью Java, вы можете что-то вроде этого Как правильно настроить заголовки в URLConnection?

Если вы можете делать запросы с помощьюбраузер, вы можете использовать этот плагин Firefox для добавления / изменения любого количества заголовков запроса.

https://addons.mozilla.org/en-US/firefox/addon/modify-headers/

Удачи

1 голос
/ 03 января 2012

Я думаю, вам нужно заключить исходный запрос в класс запроса, содержащий изменения, которые вы хотите получить.

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

1 голос
/ 03 января 2012

Вы не можете.Параметры запроса, возвращаемые сервлетом, неизменяемы Map.Вы не можете добавлять / удалять содержимое, возвращаемое из запроса (через сервлет).

Чтобы установить флаг, я предлагаю сохранить его в сеансе, а при другом действии извлечь флаг и удалить его из сеанса.

0 голосов
/ 03 января 2012

Я думаю, что они чистым способом, которым вы можете сделать это, через HttpServletRequestWrapper

Просто переопределите getHeader, getHeaders, getHeaderNames, и все готово.

0 голосов
/ 03 января 2012

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

...