Authentification avec HttpClient
Bonjour à tous,
Je debute en programmation, donc je m'excuse d'avance si certaines partie de mon code vous sembleront abérantes.
Voici donc mon projet :
J'essaye de crée une sorte de robot pour mon frère, qui permettrai de se connecter à son jeu, et une fois connecté, de récupérer certaines informations automatiquement.
Je me suis donc mis au travail, je me suis dis que pour essayer de crée certain robot, ce serait une bonne façon de commencer.
le site en question est : www.terredesrois.com (j'ai cru comprendre que le system de login, avait une importance pour le programme)
J'ai reussi à crée le code permettant de recuperer dans un page HTML uniquement les informations contenu dans certaine ID des balises <div> (afin de recuperer uniquement ce que je veux)
Le problème, c'est que pour pouvoir recuperer ceci, il me faut le code source de la page. Hors, je n'arrive pas à acceder à la page en question, car il faut se connecter au préalable sur le site, et c'est là que ca coince.
Voici donc mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.setRedirectStrategy(new DefaultRedirectStrategy() {
public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) {
boolean isRedirect=false;
try {
isRedirect = super.isRedirected(request, response, context);
} catch (ProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (!isRedirect) {
int responseCode = response.getStatusLine().getStatusCode();
if (responseCode == 301 || responseCode == 302) {
return true;
}
}
return isRedirect;
}
});
try {
HttpPost httppost = new HttpPost("http://www.terredesrois.com");
CookieStore cookieStore = new BasicCookieStore();
httpclient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1");
httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
HttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
ResponseHandler<String> gestionnaire_reponse = new BasicResponseHandler();
String reponse = null;
List<NameValuePair> parametres = new ArrayList<NameValuePair>();
parametres.add(new BasicNameValuePair("login", "Username"));
parametres.add(new BasicNameValuePair("motpass", "Userpass"));
try {
UrlEncodedFormEntity entite = new UrlEncodedFormEntity(parametres, "UTF-8");
httppost.setEntity(entite);
} catch (UnsupportedEncodingException e) {
System.err.println(e);
}
try {
HttpResponse response = httpclient.execute(httppost, context);
httppost.releaseConnection();
HttpGet httpget = new HttpGet("http://www.terredesrois.com/ville/ville/bat/pages_mod/militaire/aff-frame/aff.frame_page-etat.php3?id_unite=61540");
HttpResponse reponse2= null;
reponse2 = httpclient.execute(httpget, context);
HttpEntity entity = reponse2.getEntity();
System.out.println(EntityUtils.toString(entity));
} catch (ClientProtocolException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
} finally {
httpclient.getConnectionManager().shutdown();
} |
Avec ce code, j'espère recuperer le code source de la page mis en URL dans le httpget, cependant, lorsque j'execute, je recupère le code source de la page qui me dit "Vous ne pouvez pas acceder au site, erreur d'authentification" (comme si je ne m'étais pas log avant quoi)
Merci d'avance pour votre aide ! :)
Et encore desolé si mon code est "sale", j'en suis au essai, et je debute en matière de programmation. :oops: