[syntax=java5]
public static LoginResult signIn(String simId, String login, String password, String gcmAppId, String gcmRegistrationId) throws ApiException {
if (simId == null && (login == null || password == null)) return null;
CookieManager cookieManager = new CookieManager();
CookieManager.setDefault(cookieManager);
LoginResult result = null;
HttpURLConnection urlConnection = null;
try {
urlConnection = openConnection(URL_LOGIN);
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlConnection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(urlConnection.getOutputStream());
String formString = "какая-то строка запроса";
writer.write(formString);
writer.flush();
writer.close();
int responseCode = urlConnection.getResponseCode();
if (HttpURLConnection.HTTP_OK == responseCode) {
InputStreamReader reader = new InputStreamReader(urlConnection.getInputStream());
result = AppSettings.getGson().fromJson(reader, LoginResult.class);
} else {
throw getException(responseCode);
}
} catch (IOException e) {
throw new ApiException(e, R.string.message_not_connected);
} finally {
if (urlConnection != null) urlConnection.disconnect();
}
return result;
}
[/syntax]
Кукисы сами по себе, это просто строковые данные, которые зачастую необходимы для авторизации. Так вот, в данном методе строки
[syntax=java5] CookieManager cookieManager = new CookieManager();
CookieManager.setDefault(cookieManager);[/syntax]
непонятно что делают. Они не используются в коде. Они не записывают кукисы в запрос и не считывают их с запроса.
Я не понимаю, каким образом работать с кукисами, где их считывать и записывать? Что это за магические две строки, которые хрен пойми что делают? Точнее понятно что делают, но не для меня.
Как правильно работать с кукисами (применительно к HttpURLConnection)? Что делают эти две строки? Да и вообще, "CookieStore, Cookiehandler, CookieManager, CookieSyncManager" кто все эти 'люди'?Sessions with Cookies
To establish and maintain a potentially long-lived session between client and server, HttpURLConnection includes an extensible cookie manager. Enable VM-wide cookie management using CookieHandler and CookieManager:
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
By default, CookieManager accepts cookies from the origin server only. Two other policies are included: ACCEPT_ALL and ACCEPT_NONE. Implement CookiePolicy to define a custom policy.
The default CookieManager keeps all accepted cookies in memory. It will forget these cookies when the VM exits. Implement CookieStore to define a custom cookie store.

