【发布时间】:2016-07-26 17:49:07
【问题描述】:
我一直在使用 JavaNetCookieJar OKHttp 库,代码在下面的链接中。
JavaNetCookieJar 似乎存在问题,它仅将第一个 cookie 添加到请求中,而先前的响应已收到多个“Set-Cookie”
在挖掘 git-hub 代码之后,我似乎必须根据以下代码明确指定 cookie 列表“// RI 传递所有标头。我们没有它们,所以我们没有通过他们!”
@Override public List<Cookie> loadForRequest(HttpUrl url) {
// The RI passes all headers. We don't have 'em, so we don't pass 'em!
Map<String, List<String>> headers = Collections.emptyMap();
Map<String, List<String>> cookieHeaders;
try {
cookieHeaders = cookieHandler.get(url.uri(), headers);
} catch (IOException e) {
Platform.get().log(WARN, "Loading cookies failed for " + url.resolve("/..."), e);
return Collections.emptyList();
}
List<Cookie> cookies = null;
for (Map.Entry<String, List<String>> entry : cookieHeaders.entrySet()) {
String key = entry.getKey();
if (("Cookie".equalsIgnoreCase(key) || "Cookie2".equalsIgnoreCase(key))
&& !entry.getValue().isEmpty()) {
for (String header : entry.getValue()) {
if (cookies == null) cookies = new ArrayList<>();
cookies.addAll(decodeHeaderAsJavaNetCookies(url, header));
}
}
}
return cookies != null
? Collections.unmodifiableList(cookies)
: Collections.<Cookie>emptyList();
}
有人可以帮助我如何在不对我感兴趣的 cookie 列表进行硬编码的情况下满足这一点,因为我需要所有的 cookie。
任何帮助表示赞赏。谢谢
【问题讨论】: