Anexar unha fábrica de transporte de proxy ao cliente REST de BigQuery Java
Use HttpTransportOptions sobre a configuración existente de proxecto e credenciais, cunha configuración de transporte separada se as propias credenciais fan solicitudes de token.
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();Use esta instancia bigQuery para as operacións REST. projectId e credentials proveñen da configuración existente da aplicación.
A fábrica crea o transporte HTTP que chega á API de BigQuery a través do intermediario. O punto final da API segue sendo o destino; substituílo polo enderezo do proxy pide un servizo distinto. Para unha ruta de proxy público permitida cara a BigQuery, a lista de proxies HTTP fornece candidatos para os campos InetSocketAddress.
A obtención ou renovación de credenciais pode ter o seu propio transporte HTTP, así que configure esa entrada admitida cando as súas solicitudes necesiten o proxy. Estas opcións REST tampouco configuran unha canle gRPC independente.
Para o descubrimento do sistema, java.net.useSystemProxies ten un comportamento específico da plataforma e non garante que un valor Docker HTTP_PROXY se converta na ruta deste cliente. A fábrica explícita anterior fai visible o transporte REST seleccionado no momento da construción.