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

Përdorni këtë instancë bigQuery për operacionet REST. projectId dhe credentials vijnë nga konfigurimi ekzistues i aplikacionit.

Fabrika krijon transportin HTTP që arrin API-n e BigQuery përmes ndërmjetësit. Pika fundore e API-s mbetet destinacioni; zëvendësimi i saj me adresën e proxy-t kërkon një shërbim tjetër. Për një rrugë të lejuar të proxy-t publik drejt BigQuery, lista e proxy-ve HTTP ofron kandidatë për fushat InetSocketAddress.

Marrja ose rifreskimi i kredencialeve mund të ketë transportin e vet HTTP, prandaj konfiguroni atë hyrje të mbështetur kur kërkesat e saj kanë nevojë për proxy. Këto opsione REST gjithashtu nuk konfigurojnë një kanal gRPC të pavarur.

Për zbulimin e sistemit, java.net.useSystemProxies ka sjellje specifike për platformën dhe nuk garanton që një vlerë Docker HTTP_PROXY të bëhet rruga e këtij klienti. Fabrika eksplicite më sipër e bën transportin REST të zgjedhur të dukshëm që në ndërtim.

Artikuj të ngjashëm