当前位置: 首页 > 知识库问答 >
问题:

Android使用OKHTTP singleton与Cookie进行并行查询的正确方法

须原
2023-03-14

我正在从事一个android项目,其中我计划用OKHTTP客户端替换Apache httpclient实现。我想知道如何创建一个全局客户端,该客户端可用于使用客户端多线程的不同活动和服务中的网络请求。我应该创建OKHTTPClient的单例对象并在我的代码中重用它吗?

此外,我应该在哪里添加cookie到请求中,在客户端的全局定义中,以便我所有的请求都有cookie可用,或者在单个活动或服务中形成请求时?

共有1个答案

辛才俊
2023-03-14

使用OkHttp的一般方法是使用一个OkHttp实例和一个HttpResponseCache实例。它是否需要创建为单例取决于应用程序的要求。例如,可以在Android应用程序的子类中创建OkHttp的单个实例。onCreate(),在这种情况下,如果将应用程序类的Android应用程序子类设置为singleton,则不需要是singleton。

引用他们的维基:

“大多数应用程序应该只调用一次new OkHttp(),用缓存配置它,并在任何地方使用相同的实例。”

一旦创建了OkHttp实例,就可以使用它们的setCookieHandler()API方法添加一个持久的cookie存储,该存储将在所有后续HTTP请求中使用。有关实现与OkHttp一起工作的cookiestore的更多详细信息,请参见此答案。

 类似资料:
  • 升级到新的Mongo驱动程序PHP后,我面临着排序和查询日期的问题。 老司机使用:http://php.net/manual/en/class.mongodate.php它在MongoDate对象中以秒为单位存储日期。 新驱动程序:http://php.net/manual/en/class.mongodb-bson-utcdatetime.php以不同的格式存储日期,并以毫秒为单位存储。 已使使

  • 问题内容: 我对swig中的typemap和如何使用数组感到迷茫。我准备了一个使用swig在java和c之间使用数组的工作示例,但是我不知道这是否是正确的方法。 基本上,我想将字节数组从Java 传递给c作为“ signed char *” +它的大小,在c中对其进行修改并查看java中的更改,并在c中创建一个数组并在Java中使用它。 *在C中被修改为Java或其他的缓冲区?](http://c

  • 如何使用RxJava的Android Room进行单行查询?我可以查询项目列表,没有问题。这里,我想找出是否存在特定的行。根据文档,如果不存在行,我可以返回Single并检查EmptyResultSetException异常。 我可以吃一些类似的东西: 如何使用此呼叫?看起来有一些onError/onSuccess,但在单个上找不到这些方法 任何可行的例子都会很好!

  • 问题内容: 我正在为MongoDB使用Node.JS驱动程序,我想执行一个同步查询,例如: 问题是,db.open是一个异步调用(它不会阻塞),因此getAThing返回“ undefined”,我希望它返回查询结果。我确定我可以使用某种阻止机制,但我想知道执行此类操作的正确方法。 问题答案: 没有办法使这种同步变得不可怕。正确的方法是接受回调函数作为参数,然后在可用时调用该函数。 节点7.6+更

  • 问题内容: 我已经尝试按照PHP.net说明进行查询,但是我不确定执行此操作的最佳方法。 如果可能,我想使用参数化查询来返回表中字段与参数匹配的表。这将返回一个,因为它将是唯一的。 然后,我想将其用于另一个表中,因此我将需要确定它是否成功。 我还读到您可以准备查询以供重用,但是我不确定这有什么帮助。 问题答案: 您选择像这样的数据: 您以相同的方式插入: 我建议您将PDO配置为在出错时引发异常。如

  • 测试变量的常用方法是检查它是否引用singletone: 根据PEP-8,建议将此方法作为检查的唯一方法: 与None之类的单例进行比较时,应始终使用is或is,永远不要使用相等运算符。 虽然有时我发现以下测试在不同的来源: 这种方式看起来不错,但是我不太明白为什么简单易读的结构可以被所取代。它在某些情况下更有用,还是指代码风格? UPD:使用我发现非常有用(到目前为止):