Ciao Attualmente sto sviluppando un'applicazione Android che utilizza Retrofit per effettuare chiamate di rete. Ecco una panoramica di base sulla mia esigenza.
Cookie di sessione non persistenti nell'aggiornamento 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.
problema attuale:
sono in grado di mantenere in vita i cookie di sessione a meno che l'utente sta utilizzando l'applicazione (attraverso diverse attività). Ma una volta che l'utente esce dall'app, i cookie vengono cancellati. Ho dichiarato questi cookie all'interno di una classe che esalta la classe Application. Devo mantenere vivi i cookie di queste sessioni anche dopo che l'app è stata chiusa. in modo che possa usarli per ulteriori elaborazioni quando l'utente apre nuovamente la mia applicazione.
Ecco alcuni snippet di codice che ho implementato nella mia applicazione.
AppController.java (sottoclasse di classe di Applicazione)
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(); } .....
Ecco un frammento di come io chiamo il servizio.
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); }); ......
Grazie in anticipo.
Grazie per questo. –