Defnyddiwch ddarparwr sianel y cleient a gynhyrchwyd pan fo cysylltiad Pub/Sub Java gRPC angen dirprwy HTTP CONNECT. Nid yw gosodiad URLConnection arferol yn sefydlu'r ffurfweddiad sianel hwn.

Ar gyfer y cleient 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 a TopicAdminSettings yw dosbarthiadau Pub/Sub v1; daw HttpConnectProxiedSocketAddress o io.grpc ac InetSocketAddress o java.net. Mae'r enghraifft yn tybio'r targed cyfeiriad rhyngrwyd arferol a ddefnyddir gan y sianel hon.

Mae'r synhwyrydd yn dychwelyd cyfeiriad cysylltiad dirprwy ochr yn ochr â'r targed gwreiddiol. Mae adeiladydd gRPC angen i gyfeiriad y dirprwy gael ei ddatrys. Gadewch bwynt terfyn y gwasanaeth fel Pub/Sub: byddai ei ddisodli ag enw gwesteiwr y dirprwy yn colli targed y gwasanaeth a'r hunaniaeth TLS a fwriadwyd.

Tynnwch yr alwadau enw defnyddiwr/cyfrinair ar gyfer dirprwy heb ei ddilysu; mae ymgeiswyr HTTP cyhoeddus i'w cael yn y rhestr dirprwyon HTTP. Yr alwadau hynny yw rhyngwyneb cymwysterau HTTP CONNECT, nid SOCKS nac ymddiriedolaeth NTLM gyffredinol.

Os digwydd y methiant cyn gweithrediad gRPC tra bo cymhwyster a grëwyd yn annibynnol yn cael tocyn, archwiliwch lwybr HTTP y cymhwyster hwnnw. Mae y tu allan i'r darparwr sianel a ddangosir yma.

Erthyglau cysylltiedig