Priključite fabriku proxy transporta na BigQuery Java REST klijent
Koristite HttpTransportOptions na postojećoj konfiguraciji projekta i akreditiva, uz odvojeno podešavanje transporta ako sam akreditiv šalje zahteve za tokenima.
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();Koristite ovu bigQuery instancu za REST operacije. projectId i credentials dolaze iz postojeće konfiguracije aplikacije.
Fabrika stvara HTTP transport koji preko posrednika stiže do BigQuery API-ja. API krajnja tačka ostaje odredište; zamena adresom proxyja traži drugu uslugu. Za dozvoljenu rutu preko javnog proxyja do BigQueryja lista HTTP proxyja daje kandidate za polja InetSocketAddress.
Dobavljanje ili osvežavanje akreditiva može imati sopstveni HTTP transport, pa podesite taj podržani unos kada njegovi zahtevi trebaju proxy. Ove REST opcije takođe ne podešavaju nezavisni gRPC kanal.
Za otkrivanje sistema java.net.useSystemProxies ima ponašanje specifično za platformu i ne garantuje da će vrednost Docker HTTP_PROXY postati ruta ovog klijenta. Eksplicitna fabrika iznad čini izabrani REST transport vidljivim već pri izgradnji.