Здравствуйте, на сервере авторизация проверяется так:
- проверяется есть ли куки (login & pass)
- если есть присваивается статус "авторизованный" и more actions..
- если нет то присваивается статус "гость" и more actions..
Суть в том что к скриптам обслуживающим android-приложение будет доступ только для авторизованного пользователя, поэтому при каждом запросе клиент должен посылать куки серверу. Данные для кук хранятся в Preferences.
Как реализовать такое http соединение? p.s. можно использовать и сессии вместо кук. перегуглил много чего, узнал про defaultHttpClient, но конкретно понять ничего не могу, хотелось бы как можно больше деталей, я новичок и кроме простых get запросов и дальнейшим разбором полученных от сервера xml ничего не делал, помогите плиз разобраться) благодарен за внимание!
Авторизированное http соединение (coockies)
Re: Авторизированное http соединение (coockies)
если честно не понятно где вы искали и каким боком тут defaultHttpClient...(можете показать, что набирали в поиске??)
по сути -, наиболее простой путь, т.е. просто послать хедер с кукой.
Или вот посмотрите пример - http://svn.apache.org/viewvc/httpcompon ... iew=markup
Но вообще я бы советовал почитать тут -http://www.codeproject.com/Articles/310 ... of-Cookies
Или простой пример функции утилиты:
P.S. Возможно более кошерно использовать - http://developer.android.com/reference/ ... mmary.html,
а вообще мне кажется гугл знает ответ лучше меня - http://goo.gl/NA5ylV
по сути -
Код: Выделить всё
httpclient.addHeader("Cookie", cookieValue)Или вот посмотрите пример - http://svn.apache.org/viewvc/httpcompon ... iew=markup
Но вообще я бы советовал почитать тут -http://www.codeproject.com/Articles/310 ... of-Cookies
Или простой пример функции утилиты:
Код: Выделить всё
public static BasicCookieStore getCookieStore(String cookies, String domain) {
String[] cookieValues = cookies.split(";");
BasicCookieStore cs = new BasicCookieStore();
BasicClientCookie cookie;
for (int i = 0; i < cookieValues.length; i++) {
String[] split = cookieValues[i].split("=");
if (split.length == 2)
cookie = new BasicClientCookie(split[0], split[1]);
else
cookie = new BasicClientCookie(split[0], null);
cookie.setDomain(domain);
cs.addCookie(cookie);
}
return cs;
}
String cookies = CookieManager.getInstance().getCookie(url);
BasicCookieStore lCS = getCookieStore(cookies, MyApp.sDomain);
HttpContext localContext = new BasicHttpContext();
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.setCookieStore(lCS);
localContext.setAttribute(ClientContext.COOKIE_STORE, lCS);а вообще мне кажется гугл знает ответ лучше меня - http://goo.gl/NA5ylV
