Konfigureer 'n Spring WebClient-proxy met Reactor Netty
Voorsien 'n proxy-gekonfigureerde Reactor Netty-kliënt deur WebClient se connector en hou rekening met sy CONNECT-gebaseerde proxygedrag.
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();Gebruik hierdie WebClient vir die oproep. Vir openbare dienste op 'n toegelate publieke-proxy-roete lewer die HTTP-proxyllys gasheer- en poortkandidate; bevestig CONNECT-toegang tot die werklike bestemming. Die HttpClient/ProxyProvider-tipes is Reactor Netty s'n, nie Java se standaardkliënt nie. 'n Ander ingevoegde WebClient kan 'n ander connector behou.
Reactor Netty se gedokumenteerde Netty HTTP-proxypad gebruik CONNECT ongeag die bestemming se skema. 'n Gewone HTTP-teiken kan dus tonneltoestemming na sy poort nodig hê selfs wanneer die proxy gewone deurgestuurde HTTP daar aanvaar. Lees die werklike proxy-reaksie voordat jy die URL se skema verander. Vir 'n versoenbare Spring 6.2-ontplooiing wat gewone HTTP/1.1-deursturing benodig, bied die Jetty 12.0.35-connectorvoorbeeld daardie alternatief.
Vir JVM-eienskap-roetering, kies Reactor Netty se gedokumenteerde opt-in-konfigurasie. 'n Eienskap wat in die JVM teenwoordig is, konfigureer nie elke connector nie.
Hou proxy-opstelling/verifikasie, bestemming-TLS en toepassingsresponse apart. Die connector lewer die roete, nie die bestemming se geloofsbriewe of protokolresultaat nie.