2016-02-25 6 views
1

Мне нужно мое приложение для входа в систему и сохранения одного и того же идентификатора сеанса до выхода из системы. в тц входа я использую это:Как сохранить сеанс в android с помощью файлов cookie?

 public class loginTask extends AsyncTask<String, String, String> { 

      @Override 
      protected String doInBackground(String... params) { 
       String loginData = params[0]; 
       String text = ""; 
       BufferedReader reader = null; 

       // Send data 
       try { 
        // Defined URL where to send data 
        URL url = new URL(URL); 

        // getting cookies: 
        URLConnection conn = url.openConnection(); 
        conn.connect(); 

        // setting cookies 
        cookieManager.setCookies(url.openConnection()); 
        cookieManager.storeCookies(conn); 
} 

, когда приложение будет автоматически войти в систему, для этого нужно отправить некоторые данные на другой URL:

Public class sendVisumNo extends AsyncTask<String, String, String> { 

     @Override 
     protected String doInBackground(String... params) { 
      String visumNo = params[0]; 
      String text = ""; 
      BufferedReader reader = null; 

      // Send data 
      try { 
       // Defined URL where to send data 
       URL send_visum_url= new URL(SEND_VISUM_URL); 

       // getting cookies: 
       conn = loginURL.openConnection(); 
       conn.connect(); 

       // setting cookies 
       cookieManager.setCookies(loginURL.openConnection()); 
       cookieManager.storeCookies(conn); 
} 

Как я могу дать SEND_VISUM_URL тот же печенье/идентификатор сеанса как первый? до тех пор, пока я не выйду

Любая помощь будет принята с благодарностью!

+0

извинений никогда не делал этого раньше, но не могли бы вы сохранять информацию о файлах cookie в файл. Затем откройте его во время автоматического входа в систему, если он доступен, и если он не работает, тогда войдите в систему как обычно? –

+0

см. Мой ответ здесь http://stackoverflow.com/a/35472180/4146722 –

ответ

0

Вы можете использовать SharedPreferences сделать это This is more complete answer to shared preferences.

private SharedPreferences preferences; 
private SharedPreferences.Editor editor; 
preferences = getSharedPreferences("com.example.yourpackagename.bla", Context.MODE_PRIVATE);` 

Хранение данных:

String cookies="someweirdbigstring"; 
editor = preferences.edit(); 
editor.putString("cookies",cookies); 
editor.apply() 

Извлечение данных:

String cookies = preferences.getString("cookies", null); 
if (cookies!=null){ 
    //Do stuff with cookies 
}else{ 
    // No cookies 
} 
+0

спасибо, но как назначить sessionid из файла cookieManager.setCookies (url.openConnection()); к другому URL-соединению? – bananana

+0

Я обновил свой ответ о том, как вы извлекаете данные. Надеюсь, это поможет. –

Смежные вопросы