1

私は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()

それを実行するための私のオプションは何ですか?!

4

0 に答える 0