Я пытался получить доступ к веб-сайту для анализа данных для разрабатываемого приложения Android, но мне не везет, когда дело доходит до входа в систему.
Веб-сайт https://giffgaff.com/mobile/login
А ниже приведена вырезанная версия формы с этой страницы (HTML):
<form action="/mobile/login" method="post">
<input type="hidden" name="login_security_token" value="b22155c7259f402f8e005a771c460670">
<input type="hidden" name="redirect" value="/mobile">
<input type="hidden" name="p_next_page" value="">
<input name="nickname" maxlength="25" type="text" value="" />
<input name="password" type="password" value="" />
<button name="step" type="submit" value="Login">Login</button>
</form>
Может кто-нибудь подсказать, как мне войти на этот сайт с помощью Java, а затем проанализировать перенаправленную страницу?
До сих пор я пробовал процессы в строках:
public static void main(Context context) {
try {
// Construct data
String data = URLEncoder.encode("nickname", "UTF-8") + "=" + URLEncoder.encode("testingA", "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode("testing", "UTF-8");
// Send data
URL url = new URL("https://giffgaff.com/mobile/login");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String str = "";
String line;
while ((line = rd.readLine()) != null) {
str += line;
}
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Output");
alertDialog.setMessage(str);
alertDialog.setButton("Okay", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
alertDialog.show();
wr.close();
rd.close();
} catch (Exception e) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("ERROR");
alertDialog.setMessage(e.toString());
alertDialog.setButton("Okay", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
alertDialog.show();
}
}
Но мои попытки вернуть страницу, как если бы информация для входа была неверной.
Если выХотелось бы убедиться в том, как ведет себя страница входа в систему, вот некоторые подробности тестового входа в систему: Ник (имя пользователя): testingA Пароль: testing Сайт также, похоже, зависит от файла cookie с именем "napaSessionId"