OkHttp တွင် ရှေ့သို့ပို့ proxy ကို ပြင်ဆင်ပြီး ထို client ကိုပင် 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 instance ကို တည်ဆောက်သည်။ build မလုပ်မီ ဤ builder တွင် အပ်ပ်လီကေးရှင်း လိုအပ်သော converter နှင့် call adapter စက်ရုံများကို ထည့်ပြီး ထို instance မှ ၎င်း၏ ဝန်ဆောင်မှု interface ကို ဖန်တီးပါ။

baseUrl ကို အမှန်တကယ် API ဝန်ဆောင်မှုသို့ ညွှန်ထားပါ။ ထိုနေရာတွင် proxy URL ထည့်ပါက HTTP ဦးတည်ရာ ပြောင်းသွားမည်; ၎င်းသည် proxy ညှိနှိုင်းမှုကို ပြင်ဆင်ခြင်း မဟုတ်ပါ။ အခြေခံ URL သည် Retrofit ၏ အဆုံးတွင် slash လိုအပ်ချက်ကိုလည်း ထိန်းထားသည်။ proxy အထောက်အထားစစ်ဆေးမှု မလိုဘဲ ခွင့်ပြုထားသော အများသူငှာ API စမ်းသပ်မှုသည် သီးခြား Proxy object အတွက် HTTP proxy စာရင်းမှ HTTP လိပ်စာကို ယူနိုင်သည်။

OkHttp ၏ တိကျသော proxy သည် ၎င်း၏ ProxySelector ထက် ဦးစားပေးသည်။ client တွင် ပုံသေ ကြားခံတစ်ခု ရှိသင့်သောအခါ ၎င်းကို အသုံးပြုပါ။ ဦးတည်ရာပေါ် မူတည်သော လမ်းကြောင်းရွေးချယ်မှု လိုအပ်သော အပ်ပ်လီကေးရှင်းများသည် ထိုမူဝါဒကို ပံ့ပိုးထားသော selector မှတစ်ဆင့် ဒီဇိုင်းဆွဲသင့်သည်။

ဝန်ဆောင်မှု interface ကို အခြား Retrofit instance မှ ဖန်တီးပြီးဖြစ်ပါက ဤ instance အသစ်ကို တည်ဆောက်ခြင်းသည် interface ဟောင်း၏ တောင်းဆိုမှုများကို မရွှေ့ပြောင်းပါ။ ပြင်ဆင်ထားသော client၊ Retrofit instance နှင့် ဝန်ဆောင်မှု object ကို တူညီသော တည်ဆောက်မှုလမ်းကြောင်းတွင် ထားပါ။

အထောက်အထားစစ်ဆေးမှုပါသော proxy အတွက် OkHttp သည် proxyAuthenticator ကို ၎င်း၏ ဦးတည်ရာ authenticator နှင့် သီးခြား ဖော်ထုတ်ပေးသည်။ လိုအပ်ပါက ၎င်းကို OkHttp builder တွင် ပြင်ဆင်ပြီး ပြီးစီးသော client ကို Retrofit သို့ ပေးပါ။ Basic အထောက်အထားစစ်ဆေးမှု proxy အတွက် ကန့်သတ်ထားသော proxyAuthenticator ပြန်လည်ကြိုးစားမှု ကိုင်တွယ်ခြင်း ကို အသုံးပြုပါ။

ဆက်စပ်ဆောင်းပါးများ