J'essaie de me connecter et de récupérer des informations d'état à partir d'une URL HTTPS via la programmation Java. Je me connecte via /login.cgi, en fournissant le nom d'utilisateur et le mot de passe avec une requête POST à ce script.Authentification HTTPS et cookies via Java
Le script vérifie ensuite les informations d'identification et crée un cookie spécifique (avec les informations de session, le nom d'utilisateur, etc.), puis appelle immédiatement un en-tête de réponse Location vers /home.cgi. Ce que, je suppose, le script /home.cgi vérifie les informations de cookie avant de continuer à charger. Sinon, il revient simplement à la page /login.cgi. Tout cela fonctionne très bien dans un navigateur à cause de la façon dont le navigateur gère correctement les cookies/sessions. Cependant, dans Java, c'est très compliqué car je ne peux pas obtenir le cookie approprié pour envoyer une requête aux pages suivantes. Je ne peux pas obtenir le cookie correct parce que je suis incapable de récupérer la réponse HTTP (qui contient la bonne valeur "Set-cookie") entre /login.cgi en créant le cookie spécifique et en appelant Location /home.cgi.
Y a-t-il quelque chose qui me manque ou y a-t-il une meilleure façon que Java puisse gérer les cookies similaires à un navigateur? (Est-il un magasin de biscuits, etc?)
Merci pour l'aide,
Steve
Cette déclaration va donc automatiquement activer les cookies dans le programme Java similaire à celle d'un navigateur? –
Oui, vous pouvez simplement l'appeler au début de votre méthode principale, et plus tard toutes les requêtes HTTP via java.net.URL utiliseront un cookie store similaire à la façon dont les navigateurs gèrent les cookies. – jarnbjo
Oui, cela a fonctionné. Cependant, j'ai dû ajuster la politique des cookies pour accepter tous les cookies. CookieManager customCookieManager = nouveau CookieManager(); customCookieManager.setCookiePolicy (CookiePolicy.ACCEPT_ALL); CookieHandler.setDefault (customCookieManager); Merci pour l'aide. –