Підключення фабрики проксі-транспорту до 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-транспорт, який досягає API BigQuery через посередника. Кінцева точка API залишається пунктом призначення; її заміна адресою проксі означає запит іншої служби. Для дозволеного маршруту через публічний проксі до BigQuery список HTTP-проксі надає кандидатів для полів InetSocketAddress.
Отримання або оновлення облікових даних може мати власний HTTP-транспорт, тому налаштуйте цей підтримуваний ввід, коли його запитам потрібен проксі. Ці параметри REST також не налаштовують незалежний канал gRPC.
Для виявлення системи java.net.useSystemProxies має поведінку, залежну від платформи, і не гарантує, що значення Docker HTTP_PROXY стане маршрутом цього клієнта. Явна фабрика вище робить вибраний REST-транспорт видимим уже під час створення.