Android Volley,重复的Set-Cookie被覆盖

Rom*_*paP 19 android adt setcookie http-headers android-volley

尝试使用Volley lib作为我的Android应用程序的网络包装器.我有一个连接并运行,但问题是每次响应中有多个"Set-Cookie"标头时,Volley使用不能有重复键的Map,并且只会存储最后一个Set-cookie标头并覆盖其余的.

这个问题有解决方法吗?

还有另一个lib可以使用吗?

geo*_*sey 17

我尝试过重写类来解决这个问题,但是当我不得不编辑NetworkResponse时,我在rabbithole下降得太过分了.所以我决定直接编辑Volley以获取数组中的所有响应头而不是Map.

我的fork在GitHub上,我包含了一个示例用法活动.

对此提交中详述的NetworkResponse.java,BasicNetwork.java和HurlStack.java进行了更改.

然后在你的实际应用程序中使用你做这样的事情

protected Response<String> parseNetworkResponse(NetworkResponse response) {
            // we must override this to get headers. and with the fix, we should get all headers including duplicate names
            // in an array of apache headers called apacheHeaders. everything else about volley is the same
            for (int i = 0; i < response.apacheHeaders.length; i++) {
                String key = response.apacheHeaders[i].getName();
                String value = response.apacheHeaders[i].getValue();
                Log.d("VOLLEY_HEADERFIX",key + " - " +value);
            }

            return super.parseNetworkResponse(response);
        }
Run Code Online (Sandbox Code Playgroud)

这是一个肮脏的小黑客,但目前似乎对我有用.