Apache HttpClient 4 програмын хувьд HTTPS очих газар гэдэг нь холболт бүр TLS-ээр эхэлнэ гэсэн үг биш. Энгийн HTTP проксид шифрлэлтгүй холболтоор хүрдэг бөгөөд дараа нь CONNECT туннелийг нээж, TLS очих газрын зүг давхарлагдана.

Хэрэв өөрийн холболтын менежер зөвхөн https бүртгэвэл проксигоор дамжих эхний алхам UnsupportedSchemeException: http protocol is not supported алдаатай бүтэлгүйтэж болно.

4.5 API-д энэ менежерийг барихдаа хоёр үйлдвэрийг хоёуланг нь оруулна уу:

var registry = RegistryBuilder.<ConnectionSocketFactory>create()
    .register("http", PlainConnectionSocketFactory.getSocketFactory())
    .register("https", tlsFactory)
    .build();

var manager = new PoolingHttpClientConnectionManager(registry);
var client = HttpClients.custom()
    .setConnectionManager(manager)
    .setProxy(new HttpHost("proxy.example.net", 8080, "http"))
    .build();

tlsFactory нь програмын одоо байгаа SSLConnectionSocketFactory бөгөөд зориулалтын итгэлцэл болон хост нэрийн шалгалттай. Харуулсан төрлүүд Apache 4-ийн org.apache.http багцуудад хамаарна. Энэ хэсэг Java-ийн локал хувьсагчийн төрлийг таамаглах чадварыг шаарддаг; хуучин Java код тодорхой төрөл ашиглаж болно.

Засварласан менежерийг хүсэлтэд бодитоор ашиглагдаж буй клиентэд холбоно уу. Прокси баталгаажуулалтгүй зөвшөөрөгдсөн нийтийн HTTPS хүсэлтийн хувьд HTTP прокси жагсаалтаас HTTP бичлэг HttpHost-ийн прокси хаягийг дүүргэж чадна. Өөр builder тохируулах нь аль хэдийн барьсан клиентийг шинэчлэхгүй.

Мөн builder-ийн эзэмшлийг шалгана уу: HttpClientBuilder нь тодорхой өгсөн холболтын менежер өөрийн тусдаа SSL тохиргооны оролтуудыг дарж болохыг баримтжуулдаг. Шаардлагатай үйлдвэрүүдийг менежерийн бүртгэлд хийгээрэй, дараагийн setSSLContext дуудлага түүний дотоод хэсгийг солино гэж бодохын оронд.

Энэ оношлогоо нь локал схем бүртгэлд хамаарна. Прокси баталгаажуулалтын сорилт эсвэл татгалзсан очих газар нь дараагийн, өөр үр дүн юм. Тэдгээр хариуг судлахдаа хоёр үйлдвэрийн бүртгэлийг хадгална уу.

Холбоотой нийтлэлүүд