Je dois te connecter à un site Web, cliquez sur quelques liens vers un dernier écran pour télécharger des données, voici les étapes:HttpClient ne retourne pas le code source html terminée
- Etape 1: Connectez-vous au site sur la première page;
- étape2: cliquez sur un lien «voir» sur la première page pour accéder à la deuxième page;
- étape3: sur la deuxième page, mettre en 'numéro de compte', cliquez sur le bouton soumettre pour obtenir les nombreuses lignes de données affichées, j'appelle cela comme troisième page) (j'obtiens l'URL directe à la troisième page, en collant cette URL dans la barre d'adresse du navigateur, la troisième page est affichée correctement)
est mon problème ici: J'utilise HttpClient. Il a passé la page de connexion, et il peut arriver à la troisième page, mais seulement retourner la partie statique sur la page, la partie des données générées dynamiquement basée sur l'entrée «numéro de compte» n'est pas retournée.
Voici le code:
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();
Si je colle l'URL avec namevaluepairs ci-dessus dans l'URL du navigateur, les données de compte est affiché correctement. Mais le corps de réponse ne renvoie pas les données de compte générées dynamiquement, rien d'autre n'est renvoyé mais la section des 'données de compte'.
Est-ce que quelqu'un sait pourquoi? Toute aide est grandement appréciée.
merci Andrew! il s'agit de données générées par JavaScript. Pouvez-vous s'il vous plaît conseiller quelque chose pour résoudre ce problème? – swei
non sans en savoir beaucoup plus sur la page cible. Si c'est juste faire un appel ajax à un webservice, vous pouvez être en mesure d'émuler cela, mais si elle fait des calculs à la volée alors vous pourriez ne pas avoir de chance. –