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.

Erthyglau cysylltiedig