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.

Artigos relacionados