ربط مصنع نقل بروكسي بعميل REST في 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 سلوك خاص بكل منصة ولا يضمن أن تصبح قيمة HTTP_PROXY في Docker مسار هذا العميل. المصنع الصريح أعلاه يجعل نقل REST المختار مرئياً عند الإنشاء.