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 транспорт видлив при самото создавање.

Поврзани статии