Salut la compagnie,
J ai un gros probleme avec la fonction openStream.Alors j explique:
j ai ecrit un programme java dans laquelle j ai une methode ou j envoie une adresse url et cette methode me retourne le code source de l url dans un grand string..Voila en gros ce que fait ma methode...
Le probleme avec cette methode c est qu elle doit faire un openStream afin d ouvrir un stream avec un serveur.Et malheureusement openStream me fait une erreur car il arrive que le serveur est surchargé(Server returned HTTP response code: 500)
J ai essayé de faire un controle avec un if mais ca marche pas:
if(u.openStream()!=null){
InputStream connex = u.openStream();
}
Comme vous pouvez le voir,meme si le openStream du if passe,le 2eme openStream ne passe pas forcement...enfaite il faudrait que je fasse un controle d openstream avec une attribution a la variable connex en meme temps ou une autre solution....je vous met le code de ma methode afin que vous compreniez mieux...merci d avance ceux qui se creuseront un peu la tete....
private String getDocumentFromURL(String url) {
URL u;
try {
u = new URL(url);
} catch (MalformedURLException e) {
System.err.println("ERROR: Malformed URL: " + url);
return null;
}
try {
String line;
StringBuffer doc = new StringBuffer();
if((u.openStream()!=null)){
InputStream connex = u.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader((connex)));
while ((line = br.readLine()) != null) {
doc.append(line + "\n");
}
}else{
System.out.println("no connex");
return null;
}
return doc.toString();
}
catch (IOException e) {
System.err.println("ERROR: Unable to retrieve URL: " + url);
e.printStackTrace();
return null;
}
}
et voici l erreur que ca me fait :
ERROR: Unable to retrieve URL.java.io.IOException: Server returned HTTP response code: 500 for URL.
at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at WebCrawler.getDocumentFromURL(WebCrawler.java:521)
at WebCrawler.complexExtractData(WebCrawler.java:484)
at WebCrawler.main(WebCrawler.java:196)
Partager