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

REST مەشغۇلاتلىرى ئۈچۈن بۇ bigQuery نى ئىشلىتىڭ. projectId ۋە credentials ئەپنىڭ مەۋجۇت سەپلىمىسىدىن كېلىدۇ.

Factory ۋاسىتىچى ئارقىلىق BigQuery API غا يېتىدىغان HTTP transport نى ياسايدۇ. API ئاخىرقى نۇقتىسى مەنزىل بولۇپ قالىدۇ؛ ئۇنى proxy ئادرېسى بىلەن ئالماشتۇرۇش باشقا مۇلازىمەتنى تەلەپ قىلىش. BigQuery غا رۇخسەت قىلىنغان ئاممىۋى proxy يولى ئۈچۈن HTTP proxy تىزىملىكى InetSocketAddress ئېتىزلىرىغا نامزات بېرىدۇ.

كىملىك ئۇچۇرىنى ئېلىش ياكى يېڭىلاش ئۆزىنىڭ HTTP transport ىغا ئىگە بولۇشى مۇمكىن، شۇڭا ئۇنىڭ تەلەپلىرى proxy غا ئېھتىياجلىق بولغاندا شۇ قوللايدىغان كىرگۈزۈشنى سەپلىڭ. بۇ REST تاللانمىلىرى مۇستەقىل gRPC كانالىنىمۇ سەپلىمەيدۇ.

سىستېما بايقاش ئۈچۈن java.net.useSystemProxies نىڭ ھەرىكىتى سۇپىغا خاس بولۇپ، Docker HTTP_PROXY قىممىتىنىڭ بۇ خېرىدارنىڭ يولى بولۇشىغا كاپالەتلىك قىلمايدۇ. يۇقىرىدىكى ئېنىق factory تاللانغان REST transport نى قۇرۇش جەريانىدا كۆرۈنەرلىك قىلىدۇ.

مۇناسىۋەتلىك ماقالىلەر