私はAndroidの世界ではかなり新しいので、私の質問は非常に単純かもしれません.. HttpGetを使用してサーバーに接続し、データを収集するAndroidアプリがあります。ただし、サーバーは、コードに記憶されていない 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 ポリシーをクライアントに設定することだけです。ただし、ライブラリには次の 2 つの関数がないようです: setCookieStore と getCookieSpecs().register()
それを実行するための私のオプションは何ですか?!