Java HttpClient如何检索被拒绝的cookie

Java HttpClient如何检索被拒绝的cookie,java,httpclient,resteasy,Java,Httpclient,Resteasy,我正在使用resteasy client 3.0.6和httpclient 4.5.2,在执行GET请求时收到以下警告: Apr 19, 2018 12:40:18 PM org.apache.http.client.protocol.ResponseProcessCookies processCookies WARNING: Cookie rejected [MY_COOKIE_IDENTITY="eyJhbGciOiJIUzI1NiIsImtpZCIgOiAiNzE5OTk3ZGQtNjVh

我正在使用resteasy client 3.0.6和httpclient 4.5.2,在执行GET请求时收到以下警告:

Apr 19, 2018 12:40:18 PM org.apache.http.client.protocol.ResponseProcessCookies processCookies
WARNING: Cookie rejected [MY_COOKIE_IDENTITY="eyJhbGciOiJIUzI1NiIsImtpZCIgOiAiNzE5OTk3ZGQtNjVhZi00OTMwLTgwMjYtYWU3ZjIxZDYyYWI3In0.eyJqdGkiOiIyZjdh...", version:1, domain:psp208.fx.lan, path:/auth/210, expiry:null] Illegal 'path' attribute "/auth/210". Path of origin: "/auth/001"
Apr 19, 2018 12:40:18 PM org.apache.http.client.protocol.ResponseProcessCookies processCookies
WARNING: Cookie rejected [MY_COOKIE_SESSION="epos210/770a1a6f-1901-4985-8330-5aab4f9febe8/5f45c340-dfb6-466a-8f96-9d5a3cc51643", version:0, domain:psp208.fx.lan, path:/auth/210, expiry:Thu Apr 19 22:40:18 CEST 2018] Illegal 'path' attribute "/auth/210". Path of origin: "/auth/001"
但即使它们是用非法路径定义的,我也希望通过编程检索它们。目前,我正在尝试使用以下代码段:

ResteasyClient client = new ResteasyClientBuilder().connectionPoolSize(20).httpEngine(apacheHttpClient4Engine).build();
client.register(new ClientRequestFilter(){

    @Override
    public void filter(ClientRequestContext arg0) throws IOException {
        cookies.putAll(arg0.getCookies());
    }

});
但是过滤器永远不会被调用

在查看HttpClient文档后,我尝试创建自己的CookieSpecProvider:

Registry<CookieSpecProvider> r = RegistryBuilder.<CookieSpecProvider>create()
    .register("easy", new CookieSpecProvider(){

        @Override
        public CookieSpec create(HttpContext arg0) {
            return new BrowserCompatSpec(){

                @Override
                public void validate(org.apache.http.cookie.Cookie cookie, CookieOrigin origin)
                        throws MalformedCookieException {

                    // empty implementation
                }


            };
        }

    })
.build();
注册表r=RegistryBuilder.create() .register(“简单”,新CookiesSpecProvider)(){ @凌驾 公共CookieSpec创建(HttpContext arg0){ 返回新的BrowserCompatSpec(){ @凌驾 公共void验证(org.apache.http.cookie.cookie cookie,CookieOrigin) 抛出格式不正确的OokieException{ //空实现 } }; } }) .build(); 通过使用此实现,将调用ClientRequestFilter,但它将返回一个空的Cookie映射

我的目标是检索从响应中获得的两个cookie。我怎么做


感谢您的帮助

我通过添加cookie商店解决了这个问题

    BasicCookieStore cookieStore = new BasicCookieStore();
    CloseableHttpClient closableclient = HttpClients.custom()
            .setDefaultRequestConfig(globalConfig)      
            .setDefaultCookieSpecRegistry(registry)
            .setDefaultCookieStore(cookieStore)
            .build();
通过这种方式,我可以在没有ClientRequestFilter的情况下检索Cookie