Spring WebClient gyda Jetty: procsio HTTP plaen heb CONNECT
Defnyddiwch gysylltydd Jetty Spring gyda phrotocolau cleient a phrocs HTTP/1.1 cyfatebol pan fo angen cais HTTP wedi ei anfon ymlaen arferol.
Mae triniwr procsi HTTP Reactor Netty yn sefydlu twnnel CONNECT hyd yn oed ar gyfer cyrchfan HTTP plaen. Os yw'r procsi a fwriadwyd yn derbyn anfon ymlaen HTTP/1.1 arferol yn lle hynny, gall Spring WebClient ddefnyddio cysylltydd arall a gefnogir.
Ar gyfer Spring 6.2 gydag API cleient Jetty 12.0.35 ac integreiddiad Jetty Reactive Streams cydnaws:
var jetty = new org.eclipse.jetty.client.HttpClient(
new org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP());
jetty.getProxyConfiguration().addProxy(
new org.eclipse.jetty.client.HttpProxy("proxy.example", 8080));
var client = WebClient.builder()
.clientConnector(new JettyClientHttpConnector(jetty))
.build();
Mae WebClient a JettyClientHttpConnector yn ddosbarthiadau Spring. Rheolwch gychwyn a chau'r cleient Jetty a ddarperir trwy gylch bywyd arferol y cymhwysiad.
Gall procsi HTTP/1.1 Jetty anfon cais HTTP/1.1 arferol ymlaen heb dwnnel pan fo protocolau'r gyrchfan a'r cleient-procsi yn cyfateb. Mae ei bolisi requiresTunnel yn defnyddio CONNECT ar gyfer cyrchfannau diogel ac ar gyfer llwybrau protocol anghydnaws.
Nid yw hyn yn ffordd i ddileu CONNECT o dwnnel HTTPS arferol. Cadwch gynllun y gyrchfan yn gywir.
Defnyddiwch addProxy yn API Jetty a nodir. Mae getProxies yn dychwelyd rhestr na ellir ei newid, felly nid yw'r rysait hŷn getProxies().add(...) yn rhyngwyneb mutio cyfredol.
Ar gyfer cyrchfannau HTTP cyhoeddus ar lwybr procsi cyhoeddus a ganiateir, mae'r rhestr procsi HTTP yn darparu ymgeiswyr ar gyfer gwesteiwr a phorth procsi Jetty. Darllenwch ymateb gwirioneddol y procsi wrth gymharu cysylltyddion. Mae dilysu, polisi cyrchfan a chyrchfan heb ei chyrraedd yn parhau ar wahan i ddewis HTTP a anfonir ymlaen neu CONNECT.