Я большую часть месяца пытался понять, как войти в систему CAS моего университета через Android.Я абсолютный новичок в HTTP и аутентификации, я потратил много времени на поиски терминов в Google, но у меня их довольно много.
В любом случае, я пытаюсь войти в систему CASи я смог найти схему работы системы, которую я разместил ниже.
http://www.middleware.vt.edu/lib/exe/detail.php?id=middleware%3Acas%3Aprotocol&media=middleware:cas:cas_v1_authentication.png
Пока у меня есть следующий код:
DefaultHttpClient httpClient = new DefaultHttpClient();
try {
HttpGet httpGet = new HttpGet(LOGIN);
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
Log.i(TAG, "Login form get: " + response.getStatusLine());
if (entity != null) {
entity.consumeContent();
}
Log.i(TAG, "Initial set of cookies: ");
List<Cookie> cookies = httpClient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
Log.i(TAG, "THere are no cookies");
}
else {
for (int i = 0; i < cookies.size(); i++) {
Log.i(TAG, " - " + cookies.get(i).toString());
}
}
HttpPost httpPost = new HttpPost(LOGIN);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("username", "egaebel"));
nvps.add(new BasicNameValuePair("password", "Under&round11"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
Log.i(TAG, "The last header's value is.... " + response.getAllHeaders().length);
response = httpClient.execute(httpPost);
entity = response.getEntity();
Log.i(TAG, "Login form get: " + response.getStatusLine());
if (entity != null) {
entity.consumeContent();
}
Log.i(TAG, "Post login cookies: ");
cookies = httpClient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
Log.i(TAG, "No Cookies");
}
else {
for (int i = 0; i < cookies.size(); i++) {
Log.i(TAG, " - " + cookies.get(i).toString());
}
}
httpClient.getConnectionManager().shutdown();
Этот код не возвращает мне никаких ошибок, но он захватывает только один файл cookie, когда я думаю, что мне нужен еще один файл cookie CASTGC ......
Я надеюсь, что кто-то с большим опытом, чемЯ могу понять диаграмму выше и, по крайней мере, сказать мне, на правильном ли я пути.
Спасибо за чтение.