Guna Semula Sumber OkHttp Semasa Memilih Proksi Lain
Pilih klien OkHttp yang dikonfigurasikan proksi sebelum mencipta panggilan dan fahami perkara yang dikongsi newBuilder.
Permintaan OkHttp tidak mempunyai medan proksi boleh ubah umum. Pilih klien dengan laluan yang dimaksudkan sebelum mencipta panggilannya.
Apabila seluruh konfigurasi harus kekal dikongsi, terbitkan klien yang dilaluan daripada klien sedia ada:
OkHttpClient routed = baseClient.newBuilder()
.proxy(new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080)))
.build();Titik akhir itu hanya ilustrasi. Titik akhir HTTP awam daripada senarai proksi HTTP boleh mengisi alamat soket ini untuk laluan perkhidmatan awam yang dibenarkan, dengan syarat dasar klien asas tidak membekalkan sebarang kelayakan proksi kepada titik akhir baharu. OkHttp mendokumenkan bahawa newBuilder berkongsi sumber kumpulan sambungan dan benang dengan klien asal. Itu tidak bermaksud soket yang diwujudkan melalui satu proksi boleh dilabel semula sebagai laluan lain. Kelayakan sambungan masih bergantung pada konfigurasi laluan dan alamat.
Untuk kerja berulang, kekalkan set klien terhad yang dikunci mengikut dasar penghalaan yang benar-benar anda perlukan. Elakkan peta tidak terhad yang kuncinya mengandungi setiap akaun sementara atau variasi proksi yang pernah diperhatikan.
Perkongsian sumber juga mempengaruhi penutupan. Menutup cache yang dikongsi atau mematikan penghantar yang dikongsi boleh menjejaskan klien terbitan lain yang menggunakan sumber tersebut. Berikan pemilikan sumber jangka hayat peringkat aplikasi yang jelas dan bukan menganggap setiap klien terbitan sebagai tindanan rangkaian terasing.
Akhir sekali, sertakan identiti proksi yang dipilih dalam metadata panggilan itu sendiri. Pemboleh ubah global “proksi terakhir dipilih” tidak dapat mengenal pasti laluan beberapa permintaan serentak.