Повежите фабрику прокси транспорта са REST клијентом BigQuery Java
Користите HttpTransportOptions на постојећој конфигурацији пројекта и акредитива, уз одвојено подешавање транспорта ако сам акредитив шаље захтеве за токенима.
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();Користите ову bigQuery инстанцу за REST операције. projectId и credentials долазе из постојеће конфигурације апликације.
Фабрика ствара HTTP транспорт који преко посредника стиже до BigQuery API-ја. API крајња тачка остаје одредиште; замена адресом проксија тражи другу услугу. За дозвољену руту преко јавног проксија до BigQuery-ја листа HTTP проксија даје кандидате за поља InetSocketAddress.
Добављање или освежавање акредитива може имати сопствени HTTP транспорт, па подесите тај подржани унос када његови захтеви требају прокси. Ове REST опције такође не подешавају независни gRPC канал.
За откривање система java.net.useSystemProxies има понашање специфично за платформу и не гарантује да ће вредност Docker HTTP_PROXY постати рута овог клијента. Експлицитна фабрика изнад чини изабрани REST транспорт видљивим већ при изградњи.