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

Defnyddiwch y bigQuery hwn ar gyfer y gweithrediadau REST. Daw projectId a credentials o ffurfweddiad presennol y rhaglen.

Mae'r ffatri yn creu'r cludiant HTTP sy'n cyrraedd API BigQuery drwy'r cyfryngwr. Mae pen draw'r API yn parhau'n gyrchfan; mae ei ddisodli â chyfeiriad y dirprwy yn gofyn am wasanaeth gwahanol. Ar gyfer llwybr dirprwy cyhoeddus a ganiateir i BigQuery, mae'r rhestr dirprwy HTTP yn darparu ymgeiswyr ar gyfer meysydd InetSocketAddress.

Gall cael neu adnewyddu cyfrifoldeb fod â'i gludiant HTTP ei hun, felly ffurfweddwch y mewnbwn a gefnogir hwnnw pan fo ei geisiadau angen y dirprwy. Nid yw'r opsiynau REST hyn yn ffurfweddu sianel gRPC annibynnol chwaith.

Ar gyfer darganfod system, mae gan java.net.useSystemProxies ymddygiad sy'n dibynnu ar y platfform ac nid yw'n gwarantu bod gwerth Docker HTTP_PROXY yn dod yn llwybr i'r cleient hwn. Mae'r ffatri benodol uchod yn gwneud y cludiant REST a ddewiswyd yn weladwy wrth ei adeiladu.

Erthyglau cysylltiedig