我正在开发一个
Android项目,我打算用OKHTTP客户端替换Apache httpClient实现.我想知道如何创建一个可以用于不同活动和服务的网络请求的全局客户端,这些活动和服务将使用客户端的多线程.我应该创建OKHTTPClient的单例对象并在我的代码中重用吗?
此外,我应该在哪里添加cookiestore到请求,在客户端的全局定义中,以便我所有的请求将有cookie可用或在单独的活动或服务中形成请求?
解决方法
使用OkHttp的一般方法是一个具有一个HttpResponseCache实例的OkHttp实例.是否需要创建为单例,取决于您的应用程序的要求.例如,OkHttp的单个实例可以在Android的Application.onCreate()的子类中创建,在这种情况下,如果您将Android应用程序的Application类的子类设置为单例,则不需要为单例.
从他们的wiki报价:
“Most applications should call new OkHttp() exactly once,configure it
with their cache,and use that same instance everywhere. “
创建OkHttp实例后,您可以使用它们的setCookieHandler()API方法来添加持久性的Cookie存储,这将在所有后续HTTP请求中使用.有关实现与OkHttp协同工作的cookiestore的更多详细信息,请参阅this SO answer.