Может кто-нибудь объяснить, как использовать CookieManager в моем приложении?

Я пытаюсь получить данные пользователя из базы данных и отобразить их на странице учетной записи в моем приложении. В моем php я храню зарегистрированного пользователя в сеансе. Я обнаружил, что для доступа к пользовательской сессии мне нужно добавить sessionId к моему строковому запросу, например:

    private void getUserData() {

SharedPreferences sharedPreferences = getSharedPreferences(Config.sharedPref, Context.MODE_PRIVATE);
String sessionId = sharedPreferences.getString(Config.SID, "SessionID");

StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php?PHPSESSID=" + sessionId,

new Response.Listener<String>() {

с добавлением sessionId к запросу. Однако я получаю неожиданную ошибку с кодом ответа 500 и считаю, что это связано с управлением файлами cookie. Я пытаюсь сделать что-то вроде

     CookieManager manager = new CookieManager();
CookieHandler.setDefault(manager);

но не уверен, как это сделать или куда поместить менеджер cookie в методе.
Спасибо.

0

Решение

Есть 2 способа пройти SessionID на ваш сервер:

  1. послать SessionID в URL, как вы упомянули.

    StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php?PHPSESSID=" + sessionId,  ...
    

    В этом случае вам не потребуется Cookie быть добавленным в запросе. Так что не нужно устанавливать CookieManager, На стороне PHP убедитесь, что у вас есть конфигурация, чтобы принять PHPSESSID в URL, посмотрите Вот для справки.

  2. Положил SessionID внутри Cookie поле заголовка вашего http запроса. В этом случае вам нужно установить CookieManager управлять файлами cookie, которые сделают всю работу за вас. Здесь вам не нужно отправлять sessionId как URL-параметры.

Вы, кажется, смешиваете оба эти способа.

0

Другие решения

Других решений пока нет …