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 သည် application ၏ လက်ရှိဖွဲ့စည်းမှုမှ ရယူသည်။

factory သည် ကြားခံမှတစ်ဆင့် BigQuery API သို့ ရောက်ရှိသော HTTP transport ကို ဖန်တီးသည်။ API endpoint သည် ဦးတည်ရာအဖြစ် ဆက်ရှိသည်။ ၎င်းကို proxy လိပ်စာဖြင့် အစားထိုးခြင်းသည် အခြားဝန်ဆောင်မှုကို တောင်းခံခြင်းဖြစ်သည်။ BigQuery သို့ ခွင့်ပြုထားသော public proxy လမ်းကြောင်းအတွက် HTTP proxy စာရင်း သည် InetSocketAddress အကွက်များအတွက် ကိုယ်စားလှယ်လောင်းများ ပေးသည်။

credential ရယူခြင်း သို့မဟုတ် သက်တမ်းတိုးခြင်းတွင် ကိုယ်ပိုင် HTTP transport ရှိနိုင်သည်၊ ထို့ကြောင့် ၎င်း၏တောင်းဆိုမှုများ proxy လိုအပ်သောအခါ ထိုပံ့ပိုးထားသော input ကို သတ်မှတ်ပါ။ ဤ REST ရွေးချယ်စရာများသည် သီးခြား gRPC channel ကိုလည်း မသတ်မှတ်ပါ။

စနစ်ရှာဖွေမှုအတွက် java.net.useSystemProxies တွင် platform အလိုက် အပြုအမူရှိပြီး Docker HTTP_PROXY တန်ဖိုးသည် ဤ client ၏ လမ်းကြောင်းဖြစ်လာမည်ဟု အာမမခံပါ။ အထက်ပါ တိကျသော factory သည် ရွေးချယ်ထားသော REST transport ကို တည်ဆောက်စဉ်ကတည်းက မြင်သာစေသည်။

ဆက်စပ်ဆောင်းပါးများ