cookie&HTTPS

1、默认情况下,httpclient会默认引用cookieStore(同一个client的情况下) 自动存储和记录在client生命周期之内得到的cookie。在之后的发包操作中会自动的将cookie携带在头域中进行请求。

 但是两个不同的client会使用不同的cookie,如果需要两个不同的client使用相同的 cookie,可以在创建 client 时传入同一个 cookieStore,如下

//创建cookieStore存储cookie
CookieStore cookieStore=new BasicCookieStore();

CloseableHttpClient client1=HttpClients.custom().setDefaultCookieStore(cookieStore).build();
CloseableHttpClient client2=HttpClients.custom().setDefaultCookieStore(cookieStore).build();

2、cookieStore添加 cookie

//创建cookieStore存储cookie
CookieStore cookieStore=new BasicCookieStore();
//创建cookie对象
Cookie cookie=new BasicClientCookie("BIDUPSID","9E9076941C4F683E0D1465223ECA3650");

cookieStore.addCookie(cookie);

3、访问HTTPS,不进行证书校验

复制代码
    public static CloseableHttpClient wrapClient() {
        try {
            SSLContext ctx = SSLContext.getInstance("TLS");

            X509TrustManager tm = new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }

                public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
                }

                public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
                }
            };
            ctx.init(null, new TrustManager[] { tm }, null);
            SSLConnectionSocketFactory ssf = new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE);
            return HttpClients.custom().setSSLSocketFactory(ssf).build();
        } catch (Exception e) {
            return HttpClients.createDefault();
        }
    }
复制代码

 

posted @   hjy1995  阅读(421)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示