Користете го добавувачот на канал на генерираниот клиент кога врската Pub/Sub Java gRPC бара HTTP CONNECT прокси. Обичната поставка URLConnection не ја воспоставува оваа конфигурација на канал.

За клиентот topic-admin:

var channelProvider = TopicAdminSettings
    .defaultGrpcTransportProviderBuilder()
    .setChannelConfigurator(channel -> channel.proxyDetector(target ->
        HttpConnectProxiedSocketAddress.newBuilder()
            .setProxyAddress(new InetSocketAddress("proxy.example", 8080))
            .setTargetAddress((InetSocketAddress) target)
            .setUsername(proxyUser)
            .setPassword(proxyPassword)
            .build()))
    .build();

var settings = TopicAdminSettings.newBuilder()
    .setTransportChannelProvider(channelProvider)
    .build();
try (TopicAdminClient client = TopicAdminClient.create(settings)) {
    // Perform the application's intended topic-admin operation here.
}

TopicAdminClient и TopicAdminSettings се класи на Pub/Sub v1; HttpConnectProxiedSocketAddress доаѓа од io.grpc, а InetSocketAddress од java.net. Примерот претпоставува вообичаена интернет-адреса како цел што ја користи овој канал.

Детекторот враќа адреса на прокси-врска заедно со оригиналната цел. gRPC-градителот бара адресата на проксито да биде резолвирана. Оставете ја крајната точка на услугата како Pub/Sub: нејзината замена со името на домаќинот на проксито би ја изгубила целта на услугата и предвидениот TLS идентитет.

Отстранете ги повиците за корисничко име/лозинка за прокси без автентикација; јавни HTTP кандидати има во листата со HTTP прокси-сервери. Тие повици се интерфејсот за акредитиви на HTTP CONNECT, а не SOCKS или општа NTLM имплементација.

Ако грешката се случи пред gRPC-операцијата додека независно создадени акредитиви добиваат токен, проверете ја HTTP-рутата на тие акредитиви. Таа е надвор од овде прикажаниот добавувач на канал.

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