Spring Integration HttpRequestExecutingMessageHandler проблема для заголовков - PullRequest
0 голосов
/ 21 мая 2018

Проверка заголовков HttpRequestExecutingMessageHandler Я заметил общий заголовок, accept-encoding, gzip, который выдает исключение при ответе во время фазы преобразования, то есть сообщение не может быть преобразовано, выдавая ошибку при ответе.Который является моим предположением, связанным с задержкой используемого HttpClient.

Есть ли какая-либо причина для размещения этого заголовка на RestTemplate по умолчанию?Удаление заголовка с фильтром заголовка, запрос Rest выполняется нормально.

Также я попытался использовать RestTemplate - но заголовок остался там, поэтому работал только фильтр заголовков.

Но при внутреннем тестировании (с использованием HTTP Rest для подключения разных экземпляров Integration) все работалообычно, т.е. сообщение заголовка обрабатывается нормально (и я не знаю причину, так как проблема out. возникла с исходящими RestServers.

Поток в качестве примера приведен ниже.

С уважением,

**

IntegrationFlows.from("theRequestChannel")
                    .transform(Transformers.fromJson(MyClass.class))
                    .enrichHeaders(m -> m.header("app_id", "appid"))
                    .enrichHeaders(m -> m.header("app_key", "app_key"))
                    .headerFilter("accept-encoding")
                    .handle(myHandler())
                    .get();

**

1 Ответ

0 голосов
/ 21 мая 2018

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

Если REST-службе, которую вам нужно вызвать, действительно не нравятся эти заголовки, то мы действительно хороший выбор для filter такого заголовка перед выполнением запроса.Такой заголовок не настроен на RestTemplate, поскольку вы не исключаете его оттуда, а фильтруете до достижения этого RestTemplate.

Другой вариант, который вы можете рассмотреть, это DefaultHttpHeaderMapper с его setOutboundHeaderNames() для настройки набора шаблонов заголовков для передачи из сообщения в HTTP-запрос.Конечно, исключая упомянутое accept-encoding.

...