เชื่อมต่อ proxy transport factory กับ REST client ของ BigQuery Java
ใช้ HttpTransportOptions บนการกำหนดค่าโปรเจกต์และข้อมูลรับรองที่มีอยู่ พร้อมตั้งค่าการรับส่งแยกต่างหากหากข้อมูลรับรองเองส่งคำขอโทเค็น
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 ที่เลือกมองเห็นได้ตั้งแต่ตอนสร้าง