Uporabite ponudnika kanala ustvarjenega odjemalca, ko povezava Pub/Sub Java gRPC potrebuje proxy HTTP CONNECT. Običajna nastavitev URLConnection te konfiguracije kanala ne vzpostavi.

Za odjemalca 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 in TopicAdminSettings sta razreda Pub/Sub v1; HttpConnectProxiedSocketAddress prihaja iz io.grpc, InetSocketAddress pa iz java.net. Primer predpostavlja običajni internetni naslov cilja, ki ga uporablja ta kanal.

Zaznavalnik vrne naslov proxy povezave skupaj s prvotnim ciljem. Graditelj gRPC zahteva, da je naslov proxyja razrešen. Končno točko storitve pustite kot Pub/Sub: zamenjava z imenom gostitelja proxyja bi izgubila cilj storitve in predvideno identiteto TLS.

Odstranite klice uporabniškega imena/gesla za proxy brez preverjanja pristnosti; javni kandidati HTTP so na seznamu proxyjev HTTP. Ti klici so vmesnik poverilnic HTTP CONNECT, ne SOCKS ali splošna izvedba NTLM.

Če se napaka zgodi pred operacijo gRPC, medtem ko neodvisno ustvarjene poverilnice pridobijo žeton, preglejte pot HTTP teh poverilnic. Ta je zunaj tukaj prikazanega ponudnika kanala.

Sorodni članki