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();

Za operacije REST uporabite ta primerek bigQuery. projectId in credentials prihajata iz obstoječe konfiguracije aplikacije.

Tovarna ustvari prevoz HTTP, ki prek posrednika doseže API BigQuery. Končna točka API ostaja cilj; če jo zamenjate z naslovom proxyja, zahtevate drugo storitev. Za dovoljeno pot prek javnega proxyja do BigQuery seznam proxyjev HTTP ponuja kandidate za polja InetSocketAddress.

Pridobivanje ali obnavljanje poverilnic ima lahko svoj prevoz HTTP, zato nastavite ta podprti vnos, ko njegove zahteve potrebujejo proxy. Te možnosti REST tudi ne nastavijo neodvisnega kanala gRPC.

Za odkrivanje sistema ima java.net.useSystemProxies vedenje, specifično za platformo, in ne zagotavlja, da bo vrednost Docker HTTP_PROXY postala pot tega odjemalca. Zgornja izrecna tovarna naredi izbrani prevoz REST viden že pri gradnji.

Sorodni članki