Может кто-нибудь объяснить, как использовать 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 в методе. Спасибо.
1 ответ
Есть 2 способа пройти SessionID
на ваш сервер:
послать
SessionID
в URL, как вы упомянули.StringRequest stringRequest = new StringRequest(Request.Method.GET, Config.SERVER_ADDRESS + "GetUserData.php?PHPSESSID=" + sessionId, ...
В этом случае вам не потребуется
Cookie
быть добавленным в запросе. Так что не нужно устанавливатьCookieManager
, На стороне PHP убедитесь, что у вас есть конфигурация, чтобы принятьPHPSESSID
в URL, посмотрите здесь для ссылки.Положил
SessionID
внутриCookie
поле заголовка вашего http запроса. В этом случае вам нужно установитьCookieManager
управлять файлами cookie, которые сделают всю работу за вас. Здесь вам не нужно отправлять sessionId как URL-параметры.
Вы, кажется, смешиваете оба эти способа.