Spring WebClient без чанкованного кодирования - PullRequest
1 голос
/ 11 февраля 2020

Мне нужно использовать Spring реактивный WebClient без режима по умолчанию chunked encoding, который "применяется" базовым стеком HttpClient и Netty. К сожалению, сервер, с которым мне нужно связаться, не поддерживает этот режим, даже если он поддерживает остальные спецификации HTTP 1.1.

Я знаю, что есть возможность установить заголовок Content-Length вручную, но для этого требуется работать с некоторой DataBuffer подобной структурой, и я хотел бы использовать как можно большую часть предоставляемой поддержки (BodyInserters, поддержка Multipart et c ...). После некоторых копаний я обнаружил, что нечто подобное используется на уровне HttpClientConfiguration для запросов GET и HEAD, которые буферизуются заранее. Я хотел бы реализовать нечто подобное, но я не уверен, на каком уровне (если это вообще возможно) лучше всего это сделать. В идеале я хотел бы реализовать некоторое промежуточное программное обеспечение, которое будет только буферизовать входящие данные тела до завершения восходящего потока, а затем установить Content-Length для нисходящего потока. Я не беспокоюсь об использовании памяти.

...