Konfigurasikan klien HTTP kustom

MSAL memungkinkan Anda menyediakan klien HTTP Anda sendiri untuk mendukung konfigurasi halus. Untuk menggunakan klien Http kustom, Anda harus menerapkan IHttpClient. Kelas ini, yang akan kita sebut HttpClientAdapter, harus menerapkan send, yang menerima HttpRequest yang disusun oleh MSAL, mengeksekusinya, lalu menyusun IHttpResponse dengan hasil eksekusinya.

class OkHttpClientAdapter implements IHttpClient{

    private OkHttpClient client;

    OkHttpClientAdapter(){

        // You can configure OkHttpClient 
        this.client = new OkHttpClient();  
    }

    @Override
    public IHttpResponse send(HttpRequest httpRequest) throws IOException {
        
        // Map URL, headers, and body from MSAL's HttpRequest to OkHttpClient request object  
        Request request = buildOkRequestFromMsalRequest(httpRequest);

        // Execute Http request with OkHttpClient
        Response okHttpResponse= client.newCall(request).execute();
     
        // Map status code, headers, and response body from OkHttpClient's Response object to MSAL's IHttpResponse
        return buildMsalResponseFromOkResponse(okHttpResponse);
    }
}

Setelah HttpClientAdapter diimplementasikan, itu dapat diatur pada aplikasi klien yang ingin Anda gunakan.

IHttpClient httpClient = new OkHttpClientAdapter();
PublicClientApplication pca = PublicClientApplication.builder(
        APP_ID).
        authority(AUTHORITY).
        httpClient(httpClient).
        build();

Semua permintaan HTTP sekarang akan dirutekan melalui httpClient.