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 ដែលទៅដល់ API BigQuery តាមរយៈអន្តរការី។ ចំណុចបញ្ចប់ API នៅតែជាគោលដៅ។ ការជំនួសវាដោយអាសយដ្ឋានប្រូកស៊ីគឺស្នើសេវាផ្សេង។ សម្រាប់ផ្លូវប្រូកស៊ីសាធារណៈដែលបានអនុញ្ញាតទៅ BigQuery បញ្ជីប្រូកស៊ី HTTP ផ្តល់បេក្ខជនសម្រាប់វាល InetSocketAddress។

ការទទួលបាន ឬធ្វើបច្ចុប្បន្នភាពសម្គាល់អត្តសញ្ញាណអាចមានការដឹកជញ្ជូន HTTP រៀងៗខ្លួន ដូច្នេះកំណត់ធាតុបញ្ចូលដែលគាំទ្រនោះ នៅពេលសំណើរបស់វាត្រូវការប្រូកស៊ី។ ជម្រើស REST ទាំងនេះក៏មិនកំណត់ឆានែល gRPC ឯករាជ្យដែរ។

សម្រាប់ការរកឃើញប្រព័ន្ធ java.net.useSystemProxies មានអាកប្បកិរិយាអាស្រ័យលើវេទិកា ហើយមិនធានាថាតម្លៃ Docker HTTP_PROXY នឹងក្លាយជាផ្លូវរបស់អតិថិជននេះទេ។ រោងចក្រច្បាស់លាស់ខាងលើធ្វើឱ្យការដឹកជញ្ជូន REST ដែលបានជ្រើសឃើញតាំងពីពេលសាងសង់។

អត្ថបទពាក់ព័ន្ធ