Përdorni ofruesin e kanalit të klientit të gjeneruar kur një lidhje Pub/Sub Java gRPC ka nevojë për një proxy HTTP CONNECT. Një konfigurim i zakonshëm URLConnection nuk e vendos këtë konfigurim kanali.

Për klientin 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 dhe TopicAdminSettings janë klasa të Pub/Sub v1; HttpConnectProxiedSocketAddress vjen nga io.grpc dhe InetSocketAddress nga java.net. Shembulli supozon destinacionin e zakonshëm të adresës së internetit që përdor ky kanal.

Zbuluesi kthen një adresë lidhjeje proxy bashkë me destinacionin origjinal. Ndërtuesi gRPC kërkon që adresa e proxy-t të zgjidhet. Lëreni pikën fundore të shërbimit si Pub/Sub: zëvendësimi me emrin e hostit të proxy-t do të humbiste destinacionin e shërbimit dhe identitetin e synuar TLS.

Hiqni thirrjet e emrit të përdoruesit/fjalëkalimit për një proxy pa autentikim; kandidatët publikë HTTP gjenden në listën e proxy-ve HTTP. Këto thirrje janë ndërfaqja e kredencialeve HTTP CONNECT, jo SOCKS ose një implementim i përgjithshëm NTLM.

Nëse dështimi ndodh para operacionit gRPC ndërsa një kredencial i krijuar në mënyrë të pavarur merr një token, inspektoni rrugën HTTP të atij kredenciali. Ajo është jashtë ofruesit të kanalit të treguar këtu.

Artikuj të ngjashëm