Retrofit проксийг OkHttpClient-ээр тохируулах
Тохируулсан OkHttpClient-ийг Retrofit-д өгч, API-н суурь URL-ийг зорьсон үйлчилгээ рүү чиглүүлсэн хэвээр байлгана.
OkHttp дээр дамжуулагч проксийг тохируулаад, дараа нь мөнөөх клиентийг Retrofit-д өгнө:
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();
Энэ хэсэг нь тээврийн давхарга болон Retrofit обьектийг бүрдүүлнэ. build-ээс өмнө програмын шаардлагатай хөрвүүлэгч болон дуудлагын адаптерийн үйлдвэрүүдийг энэ бүтээгчид нэмж, дараа нь энэ обьектоос үйлчилгээний интерфейсийг үүсгэнэ.
baseUrl-ийг бодит API үйлчилгээ рүү чиглүүлсэн хэвээр байлгана. Тэнд прокси URL хийвэл HTTP зорьсон газар өөрчлөгдөнө; энэ нь прокси хэлэлцээрийг тохируулахгүй. Суурь URL нь мөн Retrofit-ийн төгсгөлийн налуу зураасны шаардлагыг хадгална. Прокси баталгаажуулалтгүй зөвшөөрөгдсөн нийтийн API туршилт нь тусдаа Proxy обьектод зориулж HTTP проксийн жагсаалтаас HTTP хаяг авч болно.
OkHttp-ийн тодорхой прокси нь өөрийн ProxySelector-оос давуу эрхтэй. Клиент тогтмол зуучлагчтай байх ёстой үед үүнийг ашиглана. Зорьсон газраас хамаарах чиглүүлэлт хэрэгтэй програмууд тухайн бодлогыг дэмжигдсэн сонгогчоор зохиох нь дээр.
Үйлчилгээний интерфейс өөр Retrofit обьектоос аль хэдийн үүссэн бол энэ шинэ обьектийг бүтээх нь хуучин интерфейсийн хүсэлтүүдийг зөөхгүй. Тохируулсан клиент, Retrofit обьект, үйлчилгээний обьектийг нэг бүтээх зам дээр байлгана.
Баталгаажуулалттай проксид OkHttp нь proxyAuthenticator-ыг зорьсон газрын баталгаажуулагчаас тусдаа гаргадаг. Шаардлагатай үед үүнийг OkHttp бүтээгч дээр тохируулаад, дараа нь бэлэн клиентийг Retrofit-д дамжуулна. Basic баталгаажуулалттай проксид proxyAuthenticator-ийн хязгаарлагдмал дахин оролдлогын зохицуулалт ашиглана.