Reactor Netty-ի HTTP փոխանցիչի մշակիչը CONNECT թունել է ստեղծում նույնիսկ սովորական HTTP նպատակակետի համար։ Եթե նախատեսված փոխանցիչը փոխարենը ընդունում է սովորական HTTP/1.1 փոխանցում, Spring WebClient-ը կարող է օգտագործել մեկ այլ աջակցվող միակցիչ։

Spring 6.2-ի համար Jetty 12.0.35-ի հաճախորդի API-ով և համատեղելի Jetty Reactive Streams ինտեգրմամբ․

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-ը և JettyClientHttpConnector-ը Spring-ի դասեր են։ Կառավարեք տրամադրված Jetty հաճախորդի գործարկումն ու կանգնեցումը հավելվածի սովորական կյանքի ցիկլով։

Jetty-ի HTTP/1.1 փոխանցիչը կարող է սովորական HTTP/1.1 հարցում փոխանցել առանց թունելի, երբ նպատակակետի և հաճախորդ-փոխանցիչի արձանագրությունները համընկնում են։ Նրա requiresTunnel քաղաքականությունը CONNECT է օգտագործում ապահով նպատակակետերի և անհամատեղելի արձանագրային ուղիների համար։

Սա սովորական HTTPS թունելից CONNECT-ը հեռացնելու միջոց չէ։ Պահեք նպատակակետի սխեման ճիշտ։

Օգտագործեք addProxy-ն նշված Jetty API-ում։ getProxies-ը վերադարձնում է անփոփոխելի ցանկ, ուստի հին getProxies().add(...) բաղադրատոմսը նրա ընթացիկ փոփոխման միջերեսը չէ։

Թույլատրված հանրային փոխանցիչի երթուղու հանրային HTTP նպատակակետերի համար HTTP փոխանցիչների ցանկը առաջարկում է թեկնածուներ Jetty-ի փոխանցիչի հոսթի և պորտի համար։ Միակցիչները համեմատելիս կարդացեք փոխանցիչի իրական պատասխանը։ Նույնականացումը, նպատակակետի քաղաքականությունը և անհասանելի նպատակակետը մնում են առանձին փոխանցված HTTP-ի և CONNECT-ի ընտրությունից։

Առնչվող հոդվածներ