Spring WebClient með Jetty: venjuleg HTTP-framboð án CONNECT
Notaðu Jetty-tengil Spring með samsvarandi HTTP/1.1 biðlara- og framboðssamskiptareglum þegar venjulegri framsendri HTTP-beiðni er þörf.
HTTP-framboðsmeðhöndlari Reactor Netty býr til CONNECT-göng jafnvel fyrir venjulegt HTTP-áfangastað. Ef ætlaða framboðið tekur í staðinn við venjulegri HTTP/1.1-framsendingu getur Spring WebClient notað annan studdan tengil.
Fyrir Spring 6.2 með biðlara-API Jetty 12.0.35 og samhæfðri Jetty Reactive Streams-samþættingu:
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();
WebClient og JettyClientHttpConnector eru Spring-klasar. Stýrðu ræsingu og stöðvun veitta Jetty-biðlarans í gegnum venjulegan lífsferil forritsins.
HTTP/1.1-framboð Jetty getur sent venjulega HTTP/1.1-beiðni án gangs þegar samskiptareglur áfangastaðar og biðlara-framboðs passa saman. requiresTunnel-stefna þess notar CONNECT fyrir örugga áfangastaði og fyrir ósamhæfðar samskiptaregluleiðir.
Þetta er ekki leið til að fjarlægja CONNECT úr venjulegu HTTPS-gangi. Haltu fyrirætlun áfangastaðarins réttri.
Notaðu addProxy í tilgreindu Jetty-API-inu. getProxies skilar óbreytanlegum lista, svo eldra uppskriftin getProxies().add(...) er ekki núverandi breytingarviðmót þess.
Fyrir opinbera HTTP-áfangastaði á leyfilegri opinberri framboðsleið veitir HTTP-framboðslistinn frambjóðendur fyrir framboðshýsil og port Jetty. Lestu raunverulegt framboðssvar þegar þú berð saman tengla. Auðkenning, stefna áfangastaðar og óaðgengilegur áfangastaður haldast aðskilin frá valinu milli framsendrar HTTP og CONNECT.