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

Gamitin ang bigQuery na ito para sa mga operasyong REST. Ang projectId at credentials ay nagmumula sa umiiral na configuration ng application.

Ginagawa ng factory ang HTTP transport na umaabot sa BigQuery API sa pamamagitan ng tagapamagitan. Nananatiling destinasyon ang endpoint ng API; ang palitan ito ng address ng proxy ay humihiling ng ibang serbisyo. Para sa pinapayagang ruta ng pampublikong proxy patungong BigQuery, ang listahan ng HTTP proxy ay nagbibigay ng mga kandidato para sa mga field ng InetSocketAddress.

Ang pagkuha o pag-renew ng credential ay maaaring may sariling HTTP transport, kaya i-configure ang sinusuportahang input na iyon kapag kailangan ng proxy ang mga request nito. Hindi rin naka-configure ang mga opsyong REST na ito ng independiyenteng gRPC channel.

Para sa system discovery, may partikular-sa-platform na pag-uugali ang java.net.useSystemProxies at hindi nito ginagarantiyahan na ang halaga ng Docker HTTP_PROXY ay magiging ruta ng client na ito. Ginagawa ng tahasang factory sa itaas na makita ang napiling REST transport sa oras ng pagbuo.

Kaugnay na mga artikulo