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-транспарт, які дасягае API BigQuery праз пасярэдніка. Канечная кропка API застаецца пунктам прызначэння; замена яе адрасам проксі запытвае іншую паслугу. Для дазволенага маршруту праз публічны проксі да BigQuery спіс HTTP-проксі дае кандыдатаў для палёў InetSocketAddress.

Атрыманне або абнаўленне ўліковых даных можа мець уласны HTTP-транспарт, таму наладзьце гэты падтрымліваемы ўвод, калі яго запыты патрабуюць проксі. Гэтыя REST-параметры таксама не наладжваюць асобны канал gRPC.

Для сістэмнага выяўлення java.net.useSystemProxies мае паводзіны, залежныя ад платформы, і не гарантуе, што значэнне Docker HTTP_PROXY стане маршрутам гэтага кліента. Яўная фабрыка вышэй робіць выбраны REST-транспарт бачным пры стварэнні.

Падобныя артыкулы