加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用Cookie持久性改进

发布时间:2020-12-14 05:07:14 所属栏目:Java 来源:网络整理
导读:我家伙,我正在使用改装,我想知道如何透明地处理会话cookie. 为此,我扩展了给定的ApacheClient,并在自定义调用ApacheClient.execute(HttpClient,HttpUriRequest)中使用了一个CookieStore: Client client = new ApacheClient() { final CookieStore cookieSto
我家伙,我正在使用改装,我想知道如何透明地处理会话cookie.
为此,我扩展了给定的ApacheClient,并在自定义调用ApacheClient.execute(HttpClient,HttpUriRequest)中使用了一个CookieStore:
Client client = new ApacheClient() {
    final CookieStore cookieStore = new BasicCookieStore();
    @Override
    protected HttpResponse execute(HttpClient client,HttpUriRequest request) throws IOException {
        // BasicHttpContext is not thread safe 
        // CookieStore is thread safe
        BasicHttpContext httpContext = new BasicHttpContext();
        httpContext.setAttribute(ClientContext.COOKIE_STORE,cookieStore);
        return client.execute(request,httpContext);
    }
};

RestAdapter restAdapter = new RestAdapter.Builder()
    .setServer(API_URL)
    .setClient(client)
    .build();

有没有更好的方式来做这个与内置的改装API(没有HttpClient扩展)?

解决方法

从API 9开始,您可以使用java.net.CookieManager,并可以设置系统范围的Cookie处理程序:
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookieManager);

是的,Apache Http客户端使用自己的cookie处理机制.但是不应该是问题,因为从API 9开始HttpURLConnection是推荐的HTTP客户端.如果您使用Square Square的Retrofit,您也可能喜欢他们的OkHttp lib – 具有很多有用功能的自定义URLConnection实现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读