Retrofit proksisini OkHttpClient orqali sozlash
Sozlangan OkHttpClient ni Retrofit ga bering, API bazaviy URL manzil esa maqsad xizmatga qaratilgan holda qolsin.
OkHttp da yo‘naltiruvchi proksini sozlang, so‘ngra o‘sha klientni Retrofit ga bering:
import java.net.InetSocketAddress;
import java.net.Proxy;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
Proxy proxy = new Proxy(
Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
OkHttpClient http = new OkHttpClient.Builder()
.proxy(proxy)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example/")
.client(http)
.build();
Bu parcha transport qatlami va Retrofit nusxasini quradi. build dan oldin ilovaga kerak bo‘lgan konverter va chaqiruv adapteri fabrikalarini ushbu quruvchiga qo‘shing, so‘ngra shu nusxadan xizmat interfeysini yarating.
baseUrl ni haqiqiy API xizmatiga qaratib turing. Agar o‘sha yerga proksi URL ini qo‘ysangiz, HTTP manzil o‘zgaradi; bu proksi bilan muzokarani sozlamaydi. Bazaviy URL shuningdek Retrofit ning oxirgi qiyshiq chiziq talabini saqlaydi. Proksi autentifikatsiyasisiz ruxsat etilgan ommaviy API sinovi alohida Proxy obyekti uchun HTTP proksilar ro‘yxatidan HTTP manzil olishi mumkin.
OkHttp ning aniq proksisi o‘zining ProxySelector idan ustun turadi. Klientda qat’iy vositachi bo‘lishi kerak bo‘lganda shundan foydalaning. Manzilga bog‘liq marshrutlash kerak bo‘lgan ilovalar bu siyosatni qo‘llab-quvvatlanadigan selektor orqali loyihalashi ma’qul.
Xizmat interfeysi allaqachon boshqa Retrofit nusxasidan yaratilgan bo‘lsa, bu yangi nusxani qurish eski interfeys so‘rovlarini ko‘chirmaydi. Sozlangan klientni, Retrofit nusxasini va xizmat obyektini bir xil qurish yo‘lida saqlang.
Autentifikatsiyali proksi uchun OkHttp proxyAuthenticator ni maqsad autentifikatoridan alohida taqdim etadi. Zarur bo‘lganda uni OkHttp quruvchisida sozlang, so‘ngra tayyor klientni Retrofit ga bering. Basic autentifikatsiyali proksi uchun cheklangan proxyAuthenticator qayta urinishlarini boshqarish dan foydalaning.