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

ይህን bigQuery ለREST ስራዎች ይጠቀሙ። projectId እና credentials ከመተግበሪያው ነባር ውቅር ይመጣሉ።

ፋብሪካው በመካከለኛው በኩል ወደ BigQuery API የሚደርሰውን HTTP ትራንስፖርት ይፈጥራል። የAPI መጨረሻ ነጥቡ መዳረሻ ሆኖ ይቆያል፤ በፕሮክሲ አድራሻ መተካቱ ሌላ አገልግሎት እንዲጠየቅ ያደርጋል። ወደ BigQuery የተፈቀደ የህዝብ ፕሮክሲ መንገድ ለማግኘት የHTTP ፕሮክሲ ዝርዝር ለInetSocketAddress መስኮች እጩዎችን ያቀርባል።

የምስክር ወረቀት ማግኘት ወይም ማደስ የራሱ HTTP ትራንስፖርት ሊኖረው ይችላል፤ ስለዚህ ጥያቄዎቹ ፕሮክሲ ሲፈልጉ ያንን የተደገፈ ግቤት ያዘጋጁ። እነዚህ የREST አማራጮች እንዲሁም ገለልተኛ የgRPC ቻናል አያዘጋጁም።

ለስርዓት ፍለጋ java.net.useSystemProxies ከመድረክ ጋር የተያያዘ ባህሪ አለው፤ የDocker HTTP_PROXY እሴት የዚህ ደንበኛ መንገድ ይሆናል ብሎ አይወስንም። ከላይ ያለው ግልጽ ፋብሪካ የተመረጠውን REST ትራንስፖርት በግንባታ ጊዜ ይታያል።

ተዛማጅ ጽሑፎች