დააკონფიგურირეთ გადამისამართების პროქსი 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 ტესტს შეუძლია HTTP მისამართი აიღოს HTTP პროქსიების სიიდან ცალკე Proxy ობიექტისთვის.

OkHttp-ის აშკარა პროქსის პრიორიტეტი აქვს მის ProxySelector-ზე. გამოიყენეთ ეს, როცა კლიენტს ფიქსირებული შუამავალი უნდა ჰქონდეს. აპლიკაციებმა, რომლებსაც დანიშნულებაზე დამოკიდებული მარშრუტიზაცია სჭირდებათ, ეს პოლიტიკა მხარდაჭერილი სელექტორის მეშვეობით უნდა შეიმუშაონ.

თუ სერვისის ინტერფეისი უკვე შექმნილია სხვა Retrofit ეგზემპლარიდან, ამ ახალი ეგზემპლარის აშენება ძველი ინტერფეისის მოთხოვნებს არ გადაადგილებს. კონფიგურირებული კლიენტი, Retrofit-ის ეგზემპლარი და სერვისის ობიექტი ერთსა და იმავე აშენების გზაზე შეინახეთ.

ავთენტიფიკაციის მქონე პროქსისთვის OkHttp proxyAuthenticator-ს დანიშნულების ავთენტიფიკატორისგან ცალკე ავლენს. საჭიროებისას დააკონფიგურირეთ იგი OkHttp-ის ამშენებელზე, შემდეგ დასრულებული კლიენტი გადაეცით Retrofit-ს. Basic ავთენტიფიკაციის პროქსისთვის გამოიყენეთ proxyAuthenticator-ის შეზღუდული განმეორებითი ცდების დამუშავება.

დაკავშირებული სტატიები