د Reactor Netty د HTTP پراکسي لاسغوښتونکی حتی د عادي HTTP هدف لپاره CONNECT تونل جوړوي. که چې اراده شوې پراکسي عادي 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 د لرې کولو لاره نه ده. د هدف scheme سم وساتئ.

په یاد شوي Jetty API کې addProxy وکاروئ. getProxies د بدلېدو وړ نه وي لیکل شوې لېست بیرته راګرځوي، نو زوړ getProxies().add(...) ترکیب د هغې اوسنی د بدلون انټرفیس نه دی.

په اجازه ورکړل شوې عامه پراکسي لار کې د عامه HTTP هدفونو لپاره، د HTTP پراکسي لېست د Jetty پراکسي host او port لپاره نوماندان برابروي. د نښلوونکو پرتله کولو پر مهال د پراکسي ریښتینی ځواب ولولئ. تصدیق، د هدف تګلاره او نه شته هدف د لېږدول شوي HTTP یا CONNECT له غوراوي څخه جلا پاتې کیږي.

اړوندې مقالې