Android правильный способ использования ОДХТТР однопользовательский режим для параллельных запросов с куки файлами

Я работаю над проектом android, в котором я планирую заменить реализацию Apache httpclient клиентом OKHTTP. Я хотел бы знать, как создать глобальный клиент, который может использоваться для сетевых запросов в разных действиях и службах, которые будут использовать многопоточность клиента. Должен ли я создать одноэлементный объект OKHTTPClient и повторно использовать его в моем коде?

Также, где я должен добавить cookiestore к запросу, В глобальном определении клиента, чтобы у всех запросов был доступный файл cookie или при формировании запроса в индивидуальной деятельности или услуге?

Ответ 1

Общий подход к использованию OkHttp - это один экземпляр OkHttp с одним экземпляром HttpResponseCache. Независимо от того, будет ли он создан как одноэлементный, зависит от требований вашего приложения. Например, единственный экземпляр OkHttp может быть создан в подклассе Android Application.onCreate(), и в этом случае он не должен быть синглом, если вы сделаете свой подкласс приложения Android класса Application одиночным.

Цитата из wiki:

"Большинство приложений должны вызывать новый OkHttp() ровно один раз, настроить его с их кешем, и использовать тот же самый экземпляр везде."

После создания экземпляра OkHttp вы можете использовать свой метод API setCookieHandler() для добавления постоянного хранилища файлов cookie, который будет использоваться во всех последующих HTTP-запросах. См. этот ответ "SO" для получения дополнительной информации о реализации cookiestore, который работает с OkHttp.