Adjunteu una fàbrica de transport de proxy al client REST de BigQuery Java
Utilitzeu HttpTransportOptions sobre la configuració existent de projecte i credencials, amb una configuració de transport separada si les credencials mateixes fan peticions de testimoni.
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();Utilitzeu aquesta instància bigQuery per a les operacions REST. projectId i credentials provenen de la configuració existent de l'aplicació.
La fàbrica crea el transport HTTP que arriba a l'API de BigQuery a través de l'intermediari. El punt final de l'API continua sent la destinació; substituir-lo per l'adreça del proxy demana un servei diferent. Per a una ruta de proxy públic permesa cap a BigQuery, la llista de proxys HTTP proporciona candidats per als camps InetSocketAddress.
L'obtenció o renovació de credencials pot tenir el seu propi transport HTTP, així que configureu aquesta entrada admesa quan les seves peticions necessitin el proxy. Aquestes opcions REST tampoc no configuren un canal gRPC independent.
Per al descobriment del sistema, java.net.useSystemProxies té un comportament específic de plataforma i no garanteix que un valor Docker HTTP_PROXY esdevingui la ruta d'aquest client. La fàbrica explícita anterior fa visible el transport REST seleccionat en el moment de la construcció.