Как установить количество одновременных запросов при создании OkHttpClient? - PullRequest
0 голосов
/ 12 октября 2018

Фон

Я создаю клиент Retrofit.Как часть этого клиента, я также создаю в нем OkHttpClient.Ниже приведен код, о котором я говорю:

public static final String BASE_URL = "https://api.darksky.net/forecast/<secret-key>/";
public static final OkHttpClient.Builder httpClient = new OkHttpClient.Builder().dispatcher()

private static Retrofit retrofit = null;

public static DarkSkyEndpoints getClient() {

    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
               .baseUrl(BASE_URL)
               .addConverterFactory(GsonConverterFactory.create())
               .client(httpClient.build())
               .build();
    }

    DarkSkyEndpoints endpoints = retrofit.create(DarkSkyEndpoints.class);
    return endpoints;
}

Что я хочу

Я хочу создать OkHttpClient, который допускает только 1 параллельный поток за раз.

Что я знаю

  1. Я знаю, что есть метод с именем dispatcher () , который можно связать рядом с OkHttpClient.Builder () какпоказано выше.

  2. Я знаю, что класс Dispatcher имеет метод setMaxRequests () , который выполняет именно то, что я хочу сделать.

Чего я не знаю

Как установить максимальное количество одновременных потоков при создании OkHttpClient для модернизации?

1 Ответ

0 голосов
/ 12 октября 2018

Вам нужно создать экземпляр класса Dispatcher и передать его в метод dispatcher().Попробуйте что-то вроде этого:

Dispatcher dispatcher = new Dispatcher();
dispatcher.setMaxRequests(MAX_REQUESTS_NUMBER);
public static final OkHttpClient httpClient = new 
OkHttpClient.Builder().dispatcher(dispatcher).build();
....
retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .client(httpClient)
            .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...