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 ມາຈາກການຕັ້ງຄ່າທີ່ມີຢູ່ຂອງແອັບຯ.

ໂຮງງານສ້າງການຂົນສົ່ງ HTTP ທີ່ໄປຮອດ API BigQuery ຜ່ານຕົວກາງ. ຈຸດປາຍທາງ API ຍັງເປັນປາຍທາງຄືເກົ່າ; ການປ່ຽນເປັນທີ່ຢູ່ພຣັອກຊີແມ່ນການຮ້ອງຂໍບໍລິການອື່ນ. ສຳລັບເສັ້ນທາງພຣັອກຊີສາທາລະນະທີ່ອະນຸຍາດໄປ BigQuery, ລາຍຊື່ພຣັອກຊີ HTTP ສະໜອງຜູ້ສະໝັກສຳລັບຊ່ອງ InetSocketAddress.

ການໄດ້ມາ ຫຼື ການຕໍ່ອາຍຸໃບຢັ້ງຢືນອາດມີການຂົນສົ່ງ HTTP ຂອງຕົນເອງ, ດັ່ງນັ້ນຈົ່ງຕັ້ງຄ່າອິນພຸດທີ່ຮອງຮັບນັ້ນ ເມື່ອຄຳຮ້ອງຂອງມັນຕ້ອງການພຣັອກຊີ. ຕົວເລືອກ REST ເຫຼົ່ານີ້ກໍບໍ່ໄດ້ຕັ້ງຄ່າຊ່ອງ gRPC ແຍກຕ່າງຫາກ.

ສຳລັບການຄົ້ນຫາລະບົບ, java.net.useSystemProxies ມີພຶດຕິກຳສະເພາະແພລດຟອມ ແລະ ບໍ່ຮັບປະກັນວ່າຄ່າ Docker HTTP_PROXY ຈະກາຍເປັນເສັ້ນທາງຂອງ client ນີ້. ໂຮງງານທີ່ຊັດເຈນຂ້າງເທິງເຮັດໃຫ້ການຂົນສົ່ງ REST ທີ່ເລືອກເຫັນໄດ້ຕັ້ງແຕ່ຕອນສ້າງ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ