Java 如何保存OkHttp客户端对象?

Java 如何保存OkHttp客户端对象?,java,android,okhttp,Java,Android,Okhttp,我正在使用当前存储库作为我工作的库。我想让应用程序能够在SharedReferences上保存凭据,这就是持久内存 我尝试过ObjectOutputStream,但它告诉我OkHttp客户端不可序列化 有线索吗 考虑一种不必保存整个OkHttpClient的替代方案: 创建一个缓存模型对象,该对象保存用于发出请求的所有有用信息 CacheModel cache = new CacheModel(this.userId, loginResult.getLogged_in_user().getPk(

我正在使用当前存储库作为我工作的库。我想让应用程序能够在SharedReferences上保存凭据,这就是持久内存

我尝试过ObjectOutputStream,但它告诉我OkHttp客户端不可序列化

有线索吗


考虑一种不必保存整个OkHttpClient的替代方案:

创建一个缓存模型对象,该对象保存用于发出请求的所有有用信息

CacheModel cache = new CacheModel(this.userId, loginResult.getLogged_in_user().getPk(), this.rankToken, this.userId, this.uuid);
然后使用Gson或其他实用程序将其转换为字符串,然后您可以根据需要保存和检索此
缓存
对象

Gson gson = new Gson();
String cacheThisValue = gson.toJson(cache); 
检索

CacheModel cache = gson.fromJson(cacheValueAsString, CacheModel.class);
您可以使用timeToLive和加密保存任何内容

文档链接

对于使用,请首先从kesho创建一个新实例

   val kesho = Kesho(context, Kesho.SHARED_PREFERENCES_MANAGER)
将数据添加到缓存

   kesho.push(KEY_OBJECT, your_value)
从缓存中检索数据

   kesho.pull(KEY_OBJECT, default_value, SampleModel::class)

你肯定不想把你的客户保存到共享状态中。。。。您可能希望保存您拥有的凭据,以便在应用程序加载时可以重新创建客户端,而不是客户端本身。您需要序列化到您的对象/类/pojo,然后使用Gson库将您的对象保存并检索到共享首选项。这是Instagram中的一个会话。因此,即使在清理内存时也需要保存@目前,它只保存“用户信息”,并使用它登录和再次登录。其思想是修改库或应用程序以保持会话处于活动状态(“或检查会话是否处于活动状态”)。我以前有一个只保存饼干罐的对象,但它有点错误。出于这个原因,我想保存整个对象。@Creciientourgánico我认为修复你有故障的饼干罐会是更好的做法。您可以保留与服务器共享的身份验证令牌和密钥,但保存客户机对象本身毫无意义。