Applet Java pour requête web

Fermé
ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015 - 21 janv. 2015 à 18:37
ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015 - 26 janv. 2015 à 21:54
Bonjour,

Je suis étudiant, et j'aimerais faire une sorte d'applet en Java qui puisse me permettre de recevoir une notification quand des notes sont mises en ligne sur un site officiel (genre un son ou juste la fenêtre qui prends tout l'écran c'est pas là le problème).

Mais il y a des sortes de contraintes :
- il faut un account pour accéder à ledit site
- toutes les pages du site ont la meme URL ( en fait je pensais envoyer une requête toutes les minutes et comparer le code HTML mais impossible d'accéder à la page en question)

Alors je ne m'y connais pas trop en web mais en java je me débrouille, je suis donc à la recherche d'aides pour pouvoir savoir quand le contenu du site a été modifié et surtout comment le savoir (envoyer une requête/min semble suffisant pour moi, voir toutes les 100 secondes mais il ne faut pas trop de délai non plus). Donc si vous avez des idées pour procéder, des classes intéressantes ou des liens je prends :p

Merci et bonne soirée.

A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
21 janv. 2015 à 21:27
Bonsoir,

Attention, il y a des restrictions sur les applets, je ne suis pas certain que l'on puisse faire des connexions HTTP avec des applets...

Sinon en Java (en général) il faudrait que tu simules le comportement de ton navigateur en faisant des requêtes POST pour s'authentifier et GET pour récupérer la page.
Voir : https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html

Quant à savoir ce qui a changé il faut conserver en mémoire la page précédente et la comparer à la nouvelle.. y a rien de magique.
1
ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015
21 janv. 2015 à 21:40
Bonsoir, merci d'avoir répondu.
En fait j'ai dit applet mais c'est pas obligé, limite ça peut tourner en console ;)
D'accord merci, je vais regarder cette documentation et voir comment je peux m'en servir.
Mais en fait, mon problème c'est que je vais stocker dans une String l'adresse du site, on va se connecter et arriver sur la page d'accueil. Mais ensuite, je ne sais pas comment changer de page : il y a des liens visibles sur l'accueil mais avec la meme URL, on peut s'y déplacer ou pas?
Sinon, je peux télécharger un PDF (2 pages) avec les infos a jour en temps réel mais c'est un peu lourd non d'en télécharger un par minute et de la comparer à celui télécharger précédemment ?
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015
21 janv. 2015 à 21:52
Pour Java, la notion de page n'existe pas, de même qu'il n'y a pas de liens visibles ou non.
Ce que tu vas récupérer c'est du code HTML, à toi de le lire pour en déduire où sont les liens.
Mais en général les liens ne changent pas d'un appel à l'autre. Donc tu peux faire des essais avec ton navigateur web pour trouver l'adresse web qui t'intéresse vraiment et y accéder directement.
Sinon télécharger un PDF toutes les 2 minutes n'est pas le plus gros problème, ce qui est embêtant c'est que c'est un format binaire, donc tu pourras voir que le PDF a changé, mais pour analyser ce qui est différent il faudra interpréter le PDF, c'est ça le plus dur.
0
ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015 > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
21 janv. 2015 à 22:01
D'accord, le but c'est juste de prévenir pour y aller jeter un coup d'oeil sinon ça sert à rien soyons clair :p Donc je vois surement que le plus facile serait de télécharger le document est de le comparer toutes les deux minutes, c'est plus simple pour moi car je n'utiliserais qu'un seul lien.
Je dois donc me débrouiller pour réussir à me connecter, c'est possible de le faire avec les classes "natives" car j'arrive à le faire quand y a une pop up pour se connecter (genre sur les serveurs) mais sur des pages classiques je n'ai pas encore trouvé comment completer les champs (typiquement comme sur CCM)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015 > ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015
21 janv. 2015 à 22:13
Comme je le disais il faut oublier la partie graphique (pop up, champs à compléter, etc.)
Il faut que tu ouvres ton navigateur web en mode débug, pour voir à quoi ressemble la requête POST qui est envoyée au final au serveur. Par exemple sur CCM il y a deux paramètres à passer : login et pass, avec bien sûr la bonne valeur pour chaque. Ensuite il faut utiliser HttpUrlConnection en modifiant les header pour ajouter ces valeurs (voir la méthode addRequestProperty)

Le cours d'Oracle : https://docs.oracle.com/javase/tutorial/networking/urls/readingWriting.html
Et un exemple : https://mkyong.com/java/how-to-send-http-request-getpost-in-java/
0
ID578CCM Messages postés 13 Date d'inscription mercredi 21 janvier 2015 Statut Membre Dernière intervention 26 janvier 2015
21 janv. 2015 à 22:26
Ah oui d'accord il était là mon problème je regarderais cela ce week end donc.
En attendant, merci et bonne fin de semaine.
0