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();

Upotrijebite ovu bigQuery instancu za REST operacije. projectId i credentials dolaze iz postojeće konfiguracije aplikacije.

Tvornica stvara HTTP transport koji preko posrednika stiže do BigQuery API-ja. API završna točka ostaje odredište; zamjena adresom proxyja traži drugu uslugu. Za dopuštenu rutu preko javnog proxyja do BigQueryja popis HTTP proxyja daje kandidate za polja InetSocketAddress.

Dohvaćanje ili obnavljanje vjerodajnica može imati vlastiti HTTP transport, pa postavite taj podržani unos kada njegovi zahtjevi trebaju proxy. Ove REST opcije također ne postavljaju neovisni gRPC kanal.

Za otkrivanje sustava java.net.useSystemProxies ima ponašanje specifično za platformu i ne jamči da će vrijednost Docker HTTP_PROXY postati ruta ovog klijenta. Eksplicitna tvornica gore čini odabrani REST transport vidljivim već pri izgradnji.

Povezani članci