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

Sebenzisa le bigQuery ekhethekile yemisebenzi ye-REST. I-projectId ne-credentials zivela kusethaphu ekhona yohlelo.

Ifekthri idala i-transport ye-HTTP efinyelela i-BigQuery API ngomlamuli. Indawo yokugcina ye-API ihlala iyindawo okuyiwa kuyo; ukuyishintsha ngekheli le-proxy kusho ukucela enye insizakalo. Ukuze kube nomzila we-proxy womphakathi ovunyelwe oya ku-BigQuery, uhlu lwe-proxy ye-HTTP lunikeza abazongenela izinkambu ze-InetSocketAddress.

Ukutholakala noma ukuvuselelwa kwe-credential kungaba ne-transport yayo ye-HTTP, ngakho-ke lungiselela lokho kufakwa okusekelwayo lapho izicelo zayo zidinga i-proxy. Lezi zinketho ze-REST futhi azilungiseleli isiteshi se-gRPC esizimele.

Ekutholeni uhlelo, i-java.net.useSystemProxies inokuziphatha okuqondene nensizakalo yesevisi futhi ayiqinisekisi ukuthi inani le-Docker HTTP_PROXY lizoba umzila wale klayenti. Ifekthri ecacile ngenhla yenza i-transport ye-REST ekhethiwe ibonakale ngesikhathi sokwakha.

Izihloko ezihlobene