okHttp3.0+ Cookies持久化

SerializableOkHttpCookies

主要做两件事:

将Cookie对象输出为ObjectStream

将ObjectStream序列化成Cookie对象


public class SerializableOkHttpCookies implements Serializable {

private transient final Cookie cookies;

private transient Cookie clientCookies;

public SerializableOkHttpCookies(Cookie cookies) {

this.cookies = cookies;

}

public Cookie getCookies() {

Cookie bestCookies = cookies;

if (clientCookies != null) {

bestCookies = clientCookies;

}

return bestCookies;

}

private void writeObject(ObjectOutputStream out) throws IOException {

out.writeObject(cookies.name());

out.writeObject(cookies.value());

out.writeLong(cookies.expiresAt());

out.writeObject(cookies.domain());

out.writeObject(cookies.path());

out.writeBoolean(cookies.secure());

out.writeBoolean(cookies.httpOnly());

out.writeBoolean(cookies.hostOnly());

out.writeBoolean(cookies.persistent());

}

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {

String name = (String) in.readObject();

String value = (String) in.readObject();

long expiresAt = in.readLong();

String domain = (String) in.readObject();

String path = (String) in.readObject();

boolean secure = in.readBoolean();

boolean httpOnly = in.readBoolean();

boolean hostOnly = in.readBoolean();

boolean persistent = in.readBoolean();

Cookie.Builder builder = new Cookie.Builder();

builder = builder.name(name);

builder = builder.value(value);

builder = builder.expiresAt(expiresAt);

builder = hostOnly ? builder.hostOnlyDomain(domain) : builder.domain(domain);

builder = builder.path(path);

builder = secure ? builder.secure() : builder;

builder = httpOnly ? builder.httpOnly() : builder;

clientCookies =builder.build();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 继承自:NSObject遵守协议:NSObject导入声明:@import Foundation;适用范围:iOS...
    ShannonChenCHN阅读 6,965评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 7,956评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,182评论 18 399
  • 转载,觉得这篇写 SQLAlchemy Core,写得非常不错。不过后续他没写SQLAlchemy ORM... ...
    非梦nj阅读 10,834评论 1 14

友情链接更多精彩内容