我正在使用Ion by Koush从URL获取cookie,这是我的Django Web应用程序的终结点。
String urlStr = "http://example.herokuexampleapp.com/registration_id/";
URL url = null;
try {
url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
List<HttpCookie> cookielist = Ion.getDefault(getApplicationContext()).getCookieMiddleware().getCookieManager().getCookieStore()
.get(uri);
Log.e("cookielist",""+cookielist.toString());
String csrfToken = "";
for (HttpCookie cookie : cookielist) {
if (cookie.getName().equals("csrftoken")) {
csrfToken = cookie.getValue();
}
}
此代码完美地工作了一段时间。但之后它会在一段时间后自动停止检测任何cookie!即使将ensure_csrf_cookie装饰器添加到应该发送CSRF cookie的Django视图(以防它正在跳过它)之后,这也没有得到修复。
所以我的问题是:为什么CSRF cookie会消失,以及确保cookie检索的可靠方法是什么?如果这个cookie retreival方法不合适,那么获取请求身份验证的csrf令牌的最佳替代方法是什么?
P.S我不想使用Apache HttpClient和其他类。他们不再受支持。