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

Használja ezt a bigQuery példányt a REST-műveletekhez. A projectId és a credentials az alkalmazás meglévő konfigurációjából származik.

A gyár hozza létre azt a HTTP-transzportot, amely a közvetítőn keresztül eléri a BigQuery API-t. Az API végpontja marad a cél; a proxy címére cserélése más szolgáltatást kér. A BigQuery felé engedélyezett nyilvános proxyútvonalhoz a HTTP-proxylista kínál jelölteket az InetSocketAddress mezőkhöz.

A hitelesítő adatok beszerzésének vagy frissítésének saját HTTP-transzportja lehet, ezért állítsa be ezt a támogatott bemenetet, amikor a kéréseinek szüksége van a proxyra. Ezek a REST-beállítások független gRPC-csatornát sem állítanak be.

A rendszerfelderítéshez a java.net.useSystemProxies platformfüggő viselkedéssel rendelkezik, és nem garantálja, hogy egy Docker HTTP_PROXY érték lesz az ügyfél útvonala. A fenti explicit gyár már az építéskor láthatóvá teszi a kiválasztott REST-transzportot.

Kapcsolódó cikkek