BigQuery Java'nın REST istemcisine bir proxy taşıma fabrikası bağlayın
HttpTransportOptions'ı mevcut proje ve kimlik bilgisi yapılandırmasında kullanın; kimlik bilgileri kendisi token istekleri yapıyorsa taşımayı ayrı yapılandırın.
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();REST işlemleri için bu bigQuery örneğini kullanın. projectId ve credentials uygulamanın mevcut yapılandırmasından gelir.
Fabrika, aracı üzerinden BigQuery API'sine ulaşan HTTP taşımasını oluşturur. API uç noktası hedef olarak kalır; onu proxy adresiyle değiştirmek farklı bir hizmet istemek demektir. BigQuery'ye izin verilen bir genel proxy yolu için HTTP proxy listesi InetSocketAddress alanlarına aday sağlar.
Kimlik bilgilerinin alınması veya yenilenmesi kendi HTTP taşımasına sahip olabilir, bu yüzden istekleri proxy'ye ihtiyaç duyduğunda bu desteklenen girdiyi yapılandırın. Bu REST seçenekleri bağımsız bir gRPC kanalını da yapılandırmaz.
Sistem keşfi için java.net.useSystemProxies platforma özgü davranışa sahiptir ve Docker HTTP_PROXY değerinin bu istemcinin yolu olacağını garanti etmez. Yukarıdaki açık fabrika, seçilen REST taşımasını oluşturma anında görünür kılar.