Spring WebClient pẹ̀lú Jetty: Ṣíṣe HTTP Láàárín Láìsí CONNECT
Lo ohun ìsopọ̀ Jetty ti Spring pẹ̀lú àwọn ìlànà HTTP/1.1 ti ẹ̀rọ-ìbánisọ̀rọ̀ àti aṣojú tí ó báramu nígbà tí a bá nílò ìbéèrè HTTP tí a fi ránṣẹ́ lásán.
Olùṣàkóso aṣojú HTTP ti Reactor Netty ń dá ọ̀nà CONNECT sílẹ̀ kódà fún ibi-àfojúsùn HTTP lásán. Tí aṣojú tí a pinnu bá gba ìfiṣẹ́ ránṣẹ́ HTTP/1.1 lásán, Spring WebClient lè lo ohun ìsopọ̀ mìíràn tí a ṣe àtìlẹ́yìn fún.
Fún Spring 6.2 pẹ̀lú API ẹ̀rọ-ìbánisọ̀rọ̀ ti Jetty 12.0.35 àti ìsopọ̀ Jetty Reactive Streams tí ó báramu:
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 àti JettyClientHttpConnector jẹ́ kíláàsì Spring. Ṣàkóso ìbẹ̀rẹ̀ àti ìdáwọ́lẹ̀ ẹ̀rọ-ìbánisọ̀rọ̀ Jetty tí a pèsè nípasẹ̀ ìgbésí ayé deede ti ohun èlò náà.
Aṣojú HTTP/1.1 ti Jetty lè fi ìbéèrè HTTP/1.1 lásán ránṣẹ́ láìsí ọ̀nà nígbà tí ìlànà ibi-àfojúsùn àti aṣojú-ẹ̀rọ-ìbánisọ̀rọ̀ bá báramu. Ìlànà requiresTunnel rẹ̀ lo CONNECT fún àwọn ibi-àfojúsùn tí ó ní ààbò àti fún àwọn ọ̀nà ìlànà tí kò báramu.
Èyí kì í ṣe ọ̀nà láti yọ CONNECT kúrò nínú ọ̀nà HTTPS lásán. Jẹ́ kí scheme ibi-àfojúsùn dúró déédé.
Lo addProxy nínú API Jetty tí a sọ. getProxies ń dá àkójọ tí a kò lè yí padà, nítorí náà ọ̀nà àtijọ́ getProxies().add(...) kì í ṣe ojú-ọ̀nà àyípadà rẹ̀ lọ́wọ́lọ́wọ́.
Fún àwọn ibi-àfojúsùn HTTP gbogbogbo lórí ọ̀nà aṣojú gbogbogbo tí a gbà láàyè, àkójọ aṣojú HTTP ń pèsè àwọn olùdíje fún host àti port aṣojú Jetty. Ka ìdáhùn aṣojú gidi nígbà tí o bá ń fi àwọn ohun ìsopọ̀ wé. Ìjẹ́rìí, ìlànà ibi-àfojúsùn àti ibi-àfojúsùn tí kò sí yóò wà lọ́tọ̀ sí yíyàn HTTP tí a fi ránṣẹ́ tàbí CONNECT.