Мне нужно войти на сайт, нажать несколько ссылок на окончательный экран, чтобы загрузить некоторые данные, вот шаги:
- шаг1: авторизоваться на сайте на первой странице;
- step2: нажмите ссылку «Просмотр» на первой странице, чтобы перейти на вторую страницу;
- step3: на второй странице введите «номер счета», нажмите кнопку «Отправить», чтобы отобразить много строк данных, я называю это третьей страницей)
(Я получаю прямой URL на третью страницу, вставив этот URL в адресную строку браузера, третья страница отображается правильно)
вот моя проблема:
Я использую Httpclient. Он прошел страницу входа в систему, и он может попасть на третью страницу, но это только
вернуть статическую часть на страницу, часть динамически сгенерированных данных на основе ввода «номер счета» не возвращается.
Вот код:
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(loginUrl);
PostMethod postMethod = new PostMethod(serverUrl);
// Prepare login parameters
NameValuePair[] data = {
new NameValuePair("passUID",account),
new NameValuePair("passUCD",password)
};
postMethod.setRequestBody(data);
// I can print out the html code of the login page here
//request the third page with URL: serverUrl4
postMethod = new PostMethod(serverUrl4);
NameValuePair[] data2 = {
new NameValuePair("passUID",account),
new NameValuePair("passUCD",""),
new NameValuePair("page", "view"),
new NameValuePair("procacct", "0"),
new NameValuePair("AcctNo", "xxxxxxxxx")
};
postMethod.setRequestBody(data2);
client.executeMethod(postMethod);
byte[] responseBody = postMethod.getResponseBody();
Если я вставлю URL-адрес с указанными выше именными парами в URL-адрес браузера, данные учетной записи будут отображаться правильно. Но отвечающий не возвращает динамически сгенерированные данные учетной записи, возвращается еще что-нибудь, кроме раздела «данных учетной записи».
Кто-нибудь знает почему? Любая помощь высоко ценится.