Налаштування проксі для Spring WebClient із Reactor Netty
Надайте клієнт Reactor Netty з налаштованим проксі через конектор WebClient і врахуйте його поведінку проксі на основі CONNECT.
HttpClient httpClient = HttpClient.create()
.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
.host("203.0.113.10").port(8080));
WebClient client = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
Використовуйте цей WebClient для виклику. Для публічних сервісів на дозволеному публічному проксі-маршруті список HTTP-проксі надає кандидатів host і port; підтвердьте доступ CONNECT до фактичного призначення. Типи HttpClient/ProxyProvider належать Reactor Netty, а не стандартному клієнту Java. Інший впроваджений WebClient може зберігати інший конектор.
Документований шлях HTTP-проксі Netty у Reactor Netty використовує CONNECT незалежно від схеми призначення. Тому звичайній HTTP-цілі може знадобитися дозвіл тунелю до її port, навіть якщо проксі там приймає звичайний переспрямований HTTP. Прочитайте фактичну відповідь проксі, перш ніж змінювати схему URL. Для сумісного розгортання Spring 6.2, якому потрібне звичайне переспрямування HTTP/1.1, приклад конектора Jetty 12.0.35 дає цю альтернативу.
Для маршрутизації через властивості JVM виберіть документовану opt-in конфігурацію Reactor Netty. Властивість, наявна в JVM, не налаштовує кожен конектор.
Тримайте окремо налаштування/автентифікацію проксі, TLS призначення та відповіді застосунку. Конектор надає маршрут, а не облікові дані призначення чи результат протоколу.