会话Cookie不能永久改进Android

 平凡岁月ss 发布于 2022-12-04 01:34

嗨,我目前正在开发一个使用Retrofit进行网络呼叫的Android应用程序.这是对我的要求的基本概述.

     1.Get Facebook access token and send it to the server.
     2.The server sets a Session cookie in the response.
     3.In all the upcoming requests send the session cookies back.

当前问题:
除非用户正在使用该应用程序(跨越不同的活动),否则我能够保持会话cookie活着.但是一旦用户退出应用程序,Cookie就会被删除.我已经在一个类似于Application类的类中声明了这些cookie .即使在应用程序退出后,我仍需要保持这些会话cookie活着.这样当用户再次打开我的应用程序时,我可以使用它们进行进一步处理.

以下是我在应用程序中实现的一些代码片段.

AppController.java(Application类的子类)


    public class AppController extends Application {
        private static AppController mInstance;
        private static OkHttpClient client;
        private static CookieManager cookieManager;
        private static Context context;
        private static AviyalApiService api; // custom interface having all the GET and POST 
        private static OkClient okClient;
        private static RestAdapter adapter;

        @Override
        public void onCreate() {
            super.onCreate();

            client = new OkHttpClient();

            cookieManager = AppController.getCookieManager();
            client.setCookieHandler(cookieManager);
            client.setFollowRedirects(true);
            client.setFollowRedirects(true);
            okClient = new OkClient(client);

            CookieManager cookieManager = new CookieManager();
            cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
            CookieHandler.setDefault(cookieManager);

            adapter = new RestAdapter.Builder()
                    .setEndpoint(context.getResources().getString(R.string.base_url))
                    .setClient(okClient).build();
        }

       .....

这是我如何称呼服务的片段.


    class LoginActivity extends Activity{
       ....
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ....
        ApiService api = AppController.getApi();
        api.fbLogin(tok, new Callback() {
            @Override
            public void success(FbLogin fbLogin, Response response) {
            //success
            }
             @Override
            public void failure(RetrofitError error) {
                MyFunctions.showAlertDialogue(LoginActivity.this, "Login Failed", error.getMessage(), "OK", null);
            });
        ......

提前致谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有