Мне нужно войти в системе на веб-сайт, нажмите несколько ссылок на последний экран, чтобы загрузить некоторые данные, вот шаги:HttpClient не возвращает завершенный HTML исходного кода
- step1: войти в сайт на первой странице;
- 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 с выше namevaluepairs в URL в браузере, данные учетной записи отображается правильно. Но тело ответа не возвращает динамически сгенерированные данные учетной записи, ничего другого не возвращается, а раздел «данных учетной записи».
Кто-нибудь знает почему? Любая помощь высоко ценится.
благодарит Эндрю! это данные, сгенерированные javascript. Не могли бы вы посоветовать что-нибудь для решения этой проблемы? – swei 2010-12-13 21:34:02
не знает намного больше о целевой странице. Если это просто вызов ajax в веб-сервисе, вы можете подражать этому, но если он выполняет вычисления на лету, вам может быть не повезло. – 2010-12-13 22:14:16