Usa o provedor de canles do cliente xerado cando unha conexión Pub/Sub Java gRPC necesita un proxy HTTP CONNECT. Unha configuración normal de URLConnection non establece esta configuración de canle.

Para o cliente 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 e TopicAdminSettings son clases de Pub/Sub v1; HttpConnectProxiedSocketAddress vén de io.grpc e InetSocketAddress de java.net. O exemplo supón o destino habitual de enderezo de internet que usa esta canle.

O detector devolve un enderezo de conexión do proxy xunto co destino orixinal. O construtor de gRPC esixe que o enderezo do proxy estea resolto. Deixa o extremo do servizo como Pub/Sub: substituílo polo nome de host do proxy perdería o destino do servizo e a identidade TLS prevista.

Elimina as chamadas de usuario/contrasinal para un proxy sen autenticación; os candidatos HTTP públicos están na lista de proxys HTTP. Esas chamadas son a interface de credenciais de HTTP CONNECT, non SOCKS nin unha implementación xeral de NTLM.

Se o fallo ocorre antes da operación gRPC mentres unhas credenciais creadas de forma independente obteñen un token, inspecciona a ruta HTTP desas credenciais. Está fóra do provedor de canles mostrado aquí.

Artigos relacionados