我是 Android 世界的新手,也许我的问题很简单。我有一个 android 应用程序,我使用 HttpGet 连接到服务器并收集数据。但是,服务器有时会设置一些我的代码不记得的 cookie。我发现了一个帖子,它使用自定义 cookie 策略并接受所有内容.. 正是我需要的。但我无法实现它。据我所知,我的 java httpclient 版本很旧,没有我需要的功能。这是我的代码:
try {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(link);
get.getParams().setParameter(
ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
HttpResponse responseGet = client.execute(get,ctx);
status_code = responseGet.getStatusLine().getStatusCode();
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
http_response = EntityUtils.toString(resEntityGet);
}
}
我需要实现的代码:
CookieStore cookieStore = new BasicCookieStore();
httpclient.setCookieStore(cookieStore);
CookieSpecFactory csf = new CookieSpecFactory() {
public CookieSpec newInstance(HttpParams params) {
return new BrowserCompatSpec() {
@Override
public void validate(Cookie cookie, CookieOrigin origin)
throws MalformedCookieException {
log.debug("allow all cookies");
}
};
}
};
httpclient.getCookieSpecs().register("easy", csf);
httpclient.getParams().setParameter(
ClientPNames.COOKIE_POLICY, "easy");
我只需要为我的客户设置这个 csf 策略。但是似乎我在库中没有这两个函数:setCookieStore 和 getCookieSpecs().register()
我有什么选择来运行它?!