Привет В настоящее время я разрабатываю приложение для Android, которое использует Retrofit для создания сетевых вызовов. Вот базовый обзор моего требования.
Сессия Cookie не устойчива в дооснащении 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 будут удалены. Я объявил эти куки внутри класса, который exjends Приложение класс. Мне нужно, чтобы эти сеансовые куки были сохранены даже после выхода приложения. так что я могу использовать их для дальнейшей обработки, когда пользователь снова открывает мое приложение.
Вот некоторые фрагменты кода, которые я реализовал в своем приложении.
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); }); ......
Заранее спасибо.
Благодарим за это. –