Ok это мое приложение:DefaultHttpClient GET и POST команд Java Android
Android приложение, чтобы позволить мне представить CokeZone коды в CokeZone.co.uk с мобильного приложения, а не с веб-сайта.
Итак, я написал этот раздел кода, чтобы выполнить команду после входа в систему, а затем проверить, не вошел ли я после входа.
Проблема - это html, который я получаю с домашней страницы после отправки команды post по умолчанию - как если бы я не вошел в систему - так что что-то не так.
Может ли кто-нибудь помочь? Вероятно, URL-адрес, отправляющий POST, или параметры в команде POST, я не делал этого, поэтому, вероятно, это было что-то очевидное.
Ниже мой код до сих пор:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
thisResponse = printPage(entity.getContent());
Log.e("debug",thisResponse);
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null) {
entity.consumeContent();
}
System.out.println("Initial set of cookies:");
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
HttpPost httpost = new HttpPost("https://secure.cokezone.co.uk/home/blank.jsp?_DARGS=/home/login/login.jsp");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("_dyncharset", "ISO-8859-1"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.loginFormBean.name","renegadeandy%40gmail.com"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.loginFormBean.name", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.cookiedUser", "false"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.cookiedUser", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.loginFormBean.password", "passwordval"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.loginFormBean.password", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.rememberMe", "yes"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.rememberMe", "false"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.aSuccessURL", "http://www.cokezone.co.uk/home/index.jsp"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.aSuccessURL", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.aErrorURL", "http://www.cokezone.co.uk/home/index.jsphttps://secure.cokezone.co.uk/home/index.jsp"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.aErrorURL", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.explicitLogin", "true"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.explicitLogin", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.fICLogin", "login"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.fICLogin", "+"));
nvps.add(new BasicNameValuePair("/grlp/login/LoginHandler.fICLogin", "LOGIN"));
nvps.add(new BasicNameValuePair("_D:/grlp/login/LoginHandler.fICLogin", "+"));
nvps.add(new BasicNameValuePair("_DARGS", "/home/login/login.jsp"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null) {
thisResponse = printPage(entity.getContent());
entity.consumeContent();
}
Log.e("debug",thisResponse);
Log.e("debug","done");
httpget = new HttpGet("http://www.cokezone.co.uk/home/index.jsp");
response = httpclient.execute(httpget);
entity = response.getEntity();
TextView points = (TextView)findViewById(R.id.points);
points.setText(getPoints(entity.getContent()).toString());
debug.setText(thisResponse);
System.out.println("Post logon cookies:");
cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
DefaultHttpClient заботится обо всех этих вещах для вас. – RenegadeAndy
«Ответ на запрос входа в систему содержит куки-файл с идентификатором сеанса для сеанса входа в систему. Вы должны отправить его обратно на сервер в последующих запросах, иначе эти другие запросы не будут связаны с вашим входом». Можете ли вы рассказать мне, как я могу реализовать эту задачу, мне действительно нужно передать идентификатор сеанса на сервер, пожалуйста, помогите – Sam