URL openStream
Résolu/Fermé
A voir également:
- URL openStream
- Lien url - Guide
- Atlas pro url serveur invalide - Forum TV & Vidéo
- Ping url ✓ - Forum Windows
- Comment changer url iptv - Forum Créer un site
- Url ftp - Forum Windows
2 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié par KX le 27/11/2014 à 08:15
Modifié par KX le 27/11/2014 à 08:15
Bonjour,
Il va falloir faire un code un peu plus long pour simuler plus précisément la requête HTTP, en particulier parce que ce que te renvoie le site dépend de ton navigateur web, donc si tu ne lui précises pas au minimum le header HTTP
Regarde du côté de la classe HttpURLConnection pour faire ça en Java.
La confiance n'exclut pas le contrôle
Il va falloir faire un code un peu plus long pour simuler plus précisément la requête HTTP, en particulier parce que ce que te renvoie le site dépend de ton navigateur web, donc si tu ne lui précises pas au minimum le header HTTP
User-Agent : Mozillail sera impossible pour le serveur de t'envoyer quoi que ce soit.
Regarde du côté de la classe HttpURLConnection pour faire ça en Java.
La confiance n'exclut pas le contrôle
J'ai oublié de vous dire que pour ces deux liens in.ready() = false, donc le buffer n'est pas près pour être lu. Avec un peu de recherche, j'ai vu que bufferReader contient un tableau de char de 8192 espaces. Dans le code source de mes deux lien, il y a des lignes avec plus de 27 000 caractères. J'ai donc augmenter la taille du buffer:
BufferedReader in = new BufferedReader(new InputStreamReader(SiteWeb.openStream()),30000);
mais le problème persiste, toutes mes lignes = null. Je ne vois vraiment pas ou est le problème parce que ce code marche sur tous les sites que j'ai testé.
BufferedReader in = new BufferedReader(new InputStreamReader(SiteWeb.openStream()),30000);
mais le problème persiste, toutes mes lignes = null. Je ne vois vraiment pas ou est le problème parce que ce code marche sur tous les sites que j'ai testé.
27 nov. 2014 à 19:04
Modifié par fred le 27/11/2014 à 19:16
27 nov. 2014 à 19:57
Remarque : maîtriser les headers des requêtes/réponses permettent de faire des opérations un peu complexe, comme se connecter avec un login/mot de passe, récupérer la session, etc.
27 nov. 2014 à 20:05
URL SiteWeb = new URL(URLlignes);
HttpURLConnection conn = (HttpURLConnection) SiteWeb.openConnection();
conn.setReadTimeout(5000);
conn.addRequestProperty("User-Agent", "Mozilla");
String ligne;
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
while ((ligne = in.readLine()) != null)
{
System.out.println(ligne);
}