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

Asked

Viewed 309 times

0

I have an app Android that makes a request to a Web server and later saves three Cookies in one CookieStore. In the meantime, I’d like to store these Cookies so that when the application is restarted no new request is required. How can I do this and recover the Cookies afterward?

  • Why don’t you save SharedPreferences android?

1 answer

1

You can use the SharedPrefrences Follow 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();
    }

Browser other questions tagged

You are not signed in. Login or sign up in order to post.