Lampirkan kilang pengangkutan proksi pada klien REST BigQuery Java
Gunakan HttpTransportOptions pada konfigurasi projek dan kelayakan sedia ada, dengan persediaan pengangkutan berasingan jika kelayakan itu sendiri membuat permintaan token.
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();Gunakan instans bigQuery ini untuk operasi REST. projectId dan credentials datang daripada konfigurasi aplikasi yang sedia ada.
Kilang ini mencipta pengangkutan HTTP yang sampai ke API BigQuery melalui perantara. Titik akhir API kekal sebagai destinasi; menggantikannya dengan alamat proksi meminta perkhidmatan lain. Untuk laluan proksi awam yang dibenarkan ke BigQuery, senarai proksi HTTP membekalkan calon untuk medan InetSocketAddress.
Perolehan atau pembaharuan kelayakan mungkin mempunyai pengangkutan HTTP sendiri, jadi konfigurasikan input yang disokong itu apabila permintaannya memerlukan proksi. Pilihan REST ini juga tidak mengkonfigurasi saluran gRPC bebas.
Untuk penemuan sistem, java.net.useSystemProxies mempunyai tingkah laku khusus platform dan tidak menjamin nilai Docker HTTP_PROXY menjadi laluan klien ini. Kilang eksplisit di atas menjadikan pengangkutan REST yang dipilih kelihatan semasa pembinaan.