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 ที่ไปถึง BigQuery API ผ่านตัวกลาง ปลายทางของ API ยังคงเป็นจุดหมาย การแทนที่ด้วยที่อยู่พร็อกซีคือการขอใช้บริการอื่น สำหรับเส้นทางพร็อกซีสาธารณะที่ได้รับอนุญาตไปยัง BigQuery รายการพร็อกซี HTTP ให้ผู้สมัครสำหรับฟิลด์ InetSocketAddress

การได้รับหรือต่ออายุข้อมูลรับรองอาจมีการรับส่ง HTTP ของตัวเอง ดังนั้นกำหนดค่าอินพุตที่รองรับนั้นเมื่อคำขอต้องการพร็อกซี ตัวเลือก REST เหล่านี้ไม่ได้กำหนดค่าช่อง gRPC แยกต่างหากเช่นกัน

สำหรับการค้นหาระบบ java.net.useSystemProxies มีพฤติกรรมเฉพาะแพลตฟอร์มและไม่รับประกันว่าค่า Docker HTTP_PROXY จะกลายเป็นเส้นทางของไคลเอนต์นี้ แฟกทอรีที่ชัดเจนข้างต้นทำให้การรับส่ง REST ที่เลือกมองเห็นได้ตั้งแต่ตอนสร้าง

บทความที่เกี่ยวข้อง