Итак, вот как настроено мое приложение:
1.) Вход в систему.
2.) После входа в систему могут быть запущены другие действия, использующие сценарии PHP, для которых требуются файлы cookie, отправленные при входе в систему.
Я использую один HttpClient в своем приложении, чтобы убедиться, что используются те же файлы cookie, но моя проблема в том, что я получаю 2 из 3 отклоненных файлов cookie. Меня не волнует действительность файлов cookie, но мне нужно, чтобы они были приняты. Я попытался установить CookiePolicy , но это тоже не сработало. Вот что говорит logcat:
11-26 10:33:57.613: WARN/ResponseProcessCookies(271): Cookie rejected: "[version: 0] [name: cookie_user_id][value: 1][domain: www.trackallthethings.com][path: trackallthethings][expiry: Sun Nov 25 11:33:00 CST 2012]". Illegal path attribute "trackallthethings". Path of origin: "/mobile-api/login.php"
11-26 10:33:57.593: WARN/ResponseProcessCookies(271): Cookie rejected: "[version: 0][name: cookie_session_id][value: 1985208971][domain: www.trackallthethings.com][path: trackallthethings][expiry: Sun Nov 25 11:33:00 CST 2012]". Illegal path attribute "trackallthethings". Path of origin: "/mobile-api/login.php"
Я уверен, что мой фактический код правильный (мое приложение по-прежнему правильно входит в систему, просто не принимает вышеупомянутые файлы cookie), но в любом случае это так:
HttpGet httpget = new HttpGet(//MY URL);
HttpResponse response;
response = Main.httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
Отсюда я использую StringBuilder, чтобы просто получить строку ответа. Ничего особенного.
Я понимаю, что причина, по которой мои куки-файлы отклоняются, заключается в «атрибуте недопустимого пути» (я запускаю скрипт по адресу /mobile-api/login.php, тогда как файл cookie возвращается с путем, равным просто «/» для отслеживания всего), но я все равно хотел бы принять куки. Есть ли способ сделать это?