Anexar uma fábrica de transporte de proxy ao cliente REST do BigQuery Java
Use HttpTransportOptions na configuração existente de projeto e credenciais, com uma configuração de transporte separada se as próprias credenciais fizerem solicitações 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 instância bigQuery para as operações REST. projectId e credentials vêm da configuração existente da aplicação.
A fábrica cria o transporte HTTP que alcança a API do BigQuery através do intermediário. O endpoint da API continua sendo o destino; substituí-lo pelo endereço do proxy pede outro serviço. Para uma rota de proxy público permitida até o BigQuery, a lista de proxies HTTP fornece candidatos para os campos InetSocketAddress.
A obtenção ou renovação de credenciais pode ter seu próprio transporte HTTP, então configure essa entrada suportada quando as solicitações precisarem do proxy. Essas opções REST também não configuram um canal gRPC independente.
Para descoberta de sistema, java.net.useSystemProxies tem comportamento específico da plataforma e não garante que um valor Docker HTTP_PROXY se torne a rota deste cliente. A fábrica explícita acima torna o transporte REST escolhido visível já na construção.