Enregistrement d'une page web dans un string

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 784 fois - Téléchargée 29 fois

Contenu du snippet

Ce programme permet de charger une URL quelquonque très rapidement dans un String
Le code est garanti valide quelle que soit l'URL donnée
Libre à vous ensuite d'écrire le String dans un fichier si vous voulez faire un enregistrement de page.
Les données étant enregistrées dans un tableau de byte avant leur conversion en String, vous pouvez également récuperer des fichiers binaires (Il suffit d'enlever la partie Conversion du tableau en String)

Source / Exemple :


try
{
	int c = 0;
	URL u=new URL("tapez ici votre URL");
	HttpURLConnection conn = (HttpURLConnection)(u.openConnection());
	c=conn.getResponseCode();
	//Création du flux	
	InputStream flux= conn.getInputStream();
	BufferedInputStream bis = new BufferedInputStream(flux);
	int taille=conn.getContentLength();
	if (taille==-1) taille=100;
	byte[] donnees = new byte[taille]; 
	int octetsLus = 0;
	int deplacement = 0; 
	float alreadyRead = 0; 
	//Recopier les donnees
	while(deplacement < taille)
	{
		octetsLus = bis.read(donnees, deplacement, donnees.length-deplacement); 
		alreadyRead = alreadyRead + octetsLus; 
		if(octetsLus == -1) break; 
		deplacement += octetsLus; 		
	}
	//Conversion du tableau en String
	String monString=new String(donnees);
	//Fermeture des flux
	flux.close();	
	bis.close();	
}
catch(Exception e)
{
	System.out.println("ERREUR : "+e);
}

Conclusion :


Voila, avec l'ADSL, c quasi instantanné, j'ai pas essayé sur une connexion 56K
Si jamais ça ne marche pas, c que vous n'êtes pas connecté, ou que votre URL ne mene a rien
(Bon, si jamais il y a un bug quand même, faîtes le moi savoir)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
3 décembre 2005

petite question : j'essaye d'enregistrer une page sur un site mais il se trouve qu'il faut pour accéder à cette page s'identifier au para avant... comment modifier le code pour gérer ça ?
Messages postés
1
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
26 octobre 2005

il suffit d'ajout avant la connection ces parametres:

//Parametre de proxy
proxy=1; //active le proxi
AdrProxy="129.13.0.1"; //adresse du proxy
PortProxy="80"; //port de ton proxy

par exemple ;)
Messages postés
50
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
6 juin 2006

J'ai un petit problème avec cette source. Lorsque j'assaye de l'utiliser, l'exception connexion timed out est lancée. Je pense (enfin je suis sûr) que cela vient du fait que ma connexion passe par un proxy, mais je ne réussi pas à trouver comment configurer les paramètres du proxy dans le programme... Quelqun a une idée ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.