Tilslut en proxy-transportfabrik til BigQuery Javas REST-klient
Brug HttpTransportOptions på den eksisterende projekt- og legitimationskonfiguration, med separat transportopsætning hvis selve legitimationsoplysningerne sender tokenanmodninger.
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();Brug denne bigQuery-instans til REST-handlingerne. projectId og credentials kommer fra applikationens eksisterende konfiguration.
Fabrikken opretter den HTTP-transport, der gennem mellemleddet når BigQuery API. API-endepunktet forbliver destinationen; at erstatte det med proxyadressen beder om en anden tjeneste. Til en tilladt offentlig proxy-rute til BigQuery leverer HTTP-proxylisten kandidater til InetSocketAddress-felterne.
Hentning eller fornyelse af legitimationsoplysninger kan have sin egen HTTP-transport, så konfigurer det understøttede input, når dets anmodninger har brug for proxyen. Disse REST-indstillinger konfigurerer heller ikke en uafhængig gRPC-kanal.
Til systemopdagelse har java.net.useSystemProxies platformsafhængig adfærd og garanterer ikke, at en Docker HTTP_PROXY-værdi bliver denne klients rute. Den eksplicitte fabrik ovenfor gør den valgte REST-transport synlig ved opbygningen.