import java.net.InetSocketAddress;
import java.net.Proxy;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.cloud.http.HttpTransportOptions;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;

var proxy = new Proxy(Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example", 8080));
var httpOptions = HttpTransportOptions.newBuilder()
    .setHttpTransportFactory(() ->
        new NetHttpTransport.Builder().setProxy(proxy).build())
    .build();

BigQuery bigQuery = BigQueryOptions.newBuilder()
    .setProjectId(projectId)
    .setCredentials(credentials)
    .setTransportOptions(httpOptions)
    .build()
    .getService();

Pro operace REST použijte tuto instanci bigQuery. projectId a credentials pocházejí ze stávající konfigurace aplikace.

Továrna vytváří HTTP transport, který se k API BigQuery dostává přes prostředníka. Koncový bod API zůstává cílem; jeho nahrazení adresou proxy vyžaduje jinou službu. Pro povolenou trasu přes veřejnou proxy k BigQuery dodává seznam HTTP proxy kandidáty pro pole InetSocketAddress.

Získání nebo obnovení přihlašovacích údajů může mít vlastní HTTP transport, proto tento podporovaný vstup nastavte, když jeho požadavky proxy potřebují. Tyto možnosti REST také nenastavují nezávislý kanál gRPC.

Pro zjišťování systému má java.net.useSystemProxies chování specifické pro platformu a nezaručuje, že se hodnota Docker HTTP_PROXY stane trasou tohoto klienta. Explicitní továrna výše činí zvolený transport REST viditelným již při vytváření.

Související články