Во апликација со Apache HttpClient 4, HTTPS одредиштето не значи дека секоја врска започнува со TLS. До обично HTTP прокси се стигнува преку нешифрирана врска пред CONNECT да го отвори тунелот и TLS да се слоеви кон одредиштето.

Ако сопствен менаџер на врски регистрира само https, првиот скок низ прокси може да не успее со UnsupportedSchemeException: http protocol is not supported.

За API 4.5, вклучете ги двете фабрики при изградбата на тој менаџер:

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 на апликацијата, со предвидената проверка на доверба и име на домаќин. Прикажаните типови припаѓаат на пакетите org.apache.http на Apache 4. Извадокот претпоставува изведување типови на локални променливи во Java; постариот Java код може да користи експлицитни типови.

Прикачете го исправениот менаџер на клиентот што навистина се користи за барањето. За дозволено јавно HTTPS барање без автентикација на прокси, HTTP запис од списокот на HTTP прокси може да ја пополни адресата на прокси во HttpHost. Конфигурирање друг builder не го ажурира веќе изградениот клиент.

Проверете и сопственоста на builder: HttpClientBuilder документира дека експлицитно доставениот менаџер на врски може да ги надмине неговите одделни SSL конфигурациски влезови. Ставете ги потребните фабрики во регистарот на менаџерот наместо да претпоставите дека подоцнежниот повик setSSLContext ќе ја замени неговата внатрешност.

Оваа дијагноза се однесува на локалниот регистар на шеми. Предизвик за автентикација на прокси или одбиено одредиште е подоцнежен, различен резултат. Задржете ги двете регистрации на фабрики додека ги истражувате тие одговори.

Поврзани статии