How do I save Cookies permanently and retrieve them later? [Android]

0

I have a Android application that makes a request next to a Web server and later saves three Cookies in a CookieStore . However, I would like to store these Cookies so that when the application is restarted no new request is required. How can I do this and retrieve the Cookies after?

    
asked by anonymous 20.04.2016 / 03:53

1 answer

0

You can use SharedPrefrences Here is an example:

Class we will use to encapsulate the information we will save:

    public class User{
        /**
         * Propriedades do Objeto
         */
        private String nome;
        private String login;
        private String senha;
        private Long timestamp;

        /**
         * Contrutor que carrega as informações
         * @param nome
         * @param login
         * @param senha
         * @param timestamp
         */
        public User(final String nome, final String login, final String senha, final Long timestamp){
            this.nome = nome;
            this.login = login;
            this.senha = senha;
            this.timestamp = timestamp;
        }

        /**
         * Construtor padrão
         */
        public User(){ }

        /**
         * Getter's and Setter's
         */

        public String getNome() {
            return nome;
        }
        public void setNome(String nome) {
            this.nome = nome;
        }
        public Long getTimestamp() {
            return timestamp;
        }
        public void setTimestamp(Long timestamp) {
            this.timestamp = timestamp;
        }
        public String getSenha() {
            return senha;
        }
        public void setSenha(String senha) {
            this.senha = senha;
        }
        public String getLogin() {
            return login;
        }
        public void setLogin(String login) {
            this.login = login;
        }
    }

Data collection and storage information (can be implemented in your Activity):

    /**
         * Constantes utilizadas para salvar / resgatar os dados
         */
        private String USER = "#USER";
        private String NAME = "#name";
        private String LOGIN = "#login";
        private String PASSWORD = "#passWord";
        private String TIMESTAMP = "#timestamp";
 /**
     * Coleta os dados de SharedPreferences e retorna no objeto
     * @param mContext
     * @return User
     */

    public User getUser(final Context mContext){
        if(null == mContext) return null;
        //Cria uma instancia do SharedPreferences
        final SharedPreferences prefs = mContext.getSharedPreferences(USER, Context.MODE_PRIVATE);
        // se for nulo, n˜ao temos mais o que fazer, e retornamos nulo!
        if(null == prefs) return null;

        /**
         *  Cria uma nova instacia e coleta os valores!
         *  Para carregar um valor passamos o nome da Propriedade e um valor padrão.
         *  Se não haver dados para esta propriedade, ele irá retornar o valor padão
         */

        final User user = new User();
        user.setLogin(prefs.getString(LOGIN, null));
        user.setNome(prefs.getString(NAME, null));
        user.setSenha(prefs.getString(PASSWORD, null));
        user.setTimestamp(prefs.getLong(TIMESTAMP, 0L));
        return user;
    }


    /**
     * Grava as informações do objeto em um SharedPreferences.
     * @param user
     * @param mContext
     */
    public void setUser(final User user, final Context mContext){
        if(null == user) return;
        //Cria uma instancia do SharedPreferences
        SharedPreferences prefs = mContext.getSharedPreferences(USER, Context.MODE_PRIVATE);
        // Criamos um instancia do editor, para salvamos os dados
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString(LOGIN, user.getLogin());
        editor.putString(NAME, user.getNome());
        editor.putString(PASSWORD, user.getSenha());
        // para que sempre atualize, passamos o valor do Sistema.
        editor.putLong(TIMESTAMP, System.currentTimeMillis());
        // Para que as informações sejam atualizadas
        editor.apply();
    }
    
20.04.2016 / 04:03