Question

J'ai essayé plusieurs façons de se connecter à un site Web via Java. J'ai utilisé watij, HTMLunit, etc., mais je ne parviens pas à me connecter avec succès.

Quelqu'un peut-il me dire en détail comment se connecter via Java

Pour être plus précis, je souhaite me connecter à ORKUT et souhaiter le source de la page qui vient après la connexion.

Était-ce utile?

La solution

Vos meilleures chances de faire de telles choses & amp; survivre dans le monde réel sont avec Selenium-RC.

En gros, vous allez contrôler à distance votre navigateur pour faire tout ce que vous pouvez faire manuellement (sauf le téléchargement de fichiers).

Plusieurs fois, j'ai utilisé ce modèle:

  1. Connexion avec sélénium
  2. Prenez les cookies
  3. Continuer avec ma bibliothèque HTTP préférée.

Autres conseils

La réponse dépend de la façon dont le site Web tente de vous authentifier:

  • Devez-vous définir un nom d'utilisateur et un mot de passe dans les en-têtes HTTP (authentification de base)?
  • Ou devez-vous remplir et envoyer un formulaire contenant le nom d'utilisateur et le mot de passe?

Je recommande soit commons-httpclient, bien que la dernière approche de nettoyage d'écran soit toujours compliquée à faire par programmation.

Pour l'authentification de base, consultez le Guide d'authentification de httpclient.

Pour l'authentification par formulaire, vous devez vérifier la source HTML de la page pour comprendre

  • L'URL à laquelle le formulaire est soumis
  • Quels sont les noms des paramètres à soumettre

Pour obtenir de l'aide sur la procédure de soumission d'un formulaire dans httpclient, consultez la documentation sur la méthode POST .

Le site httpclient contient également un didacticiel de base .

Pourquoi essayez-vous de vous connecter via Java, pourquoi ne pas simplement utiliser cURL? Voulez-vous accomplir quelque chose de spécifique?

Orkut utilise l’authentification Google pour se connecter. Ma suggestion est d'utiliser un débogueur HTTP comme Fiddler pour surveiller le trafic lors de la connexion. Il y a probablement des cookies et des redirections que vous devez répliquer.

En général,

  1. Regardez le formulaire de connexion, obtenez les noms des champs nom et mot de passe et l'action que le formulaire affiche
  2. Créez une demande POST sur l'URL de l'action et transmettez le nom et le mot de passe correctement (par exemple, nom = nom d'utilisateur et mot de passe = mot de passe)
  3. S'agissait-il de HTTPS (assurez-vous de le faire correctement)
  4. Si l'en-tête de la réponse contient SET-COOKIE, veillez à envoyer ce cookie lors de toutes les demandes ultérieures
  5. Si la réponse contient une redirection, effectuez une opération GET pour la redirection, en envoyant des cookies le cas échéant
  6. (continuez à boucler sur # 5 jusqu'à ce que vous n'obteniez pas de redirection)

La réponse que vous obtenez à la fin de ceci est la source de la page.

Regardez ceci:

http: // code .google.com / apis / gdata / javadoc / com / google / gdata / client / http / AuthSubUtil.html http: // code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

Ressemble au code Google pour s’authentifier avec leurs services.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top