Свържете фабрика за прокси транспорт с 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 транспорт видим при създаването.