2010-07-30 5 views
1

Je ne pouvais pas comprendre la raison pour laquelle j'obtiens cette erreur pendant que j'essaye d'analyser un flux en utilisant sax parser.Le code est simple et il a été un travail code pour beaucoup d'autres URL.J'ai rencontré java.io.FileNotFoundException lors de l'analyse d'un flux rss en Java

try{ 
     String myurl="http://news.google.com/news?ned=us&topic=n&output=rss" 

     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     spf.setValidating(false); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 
     xr.setContentHandler(this); 

     URL com = new URL(urls); 
     URLConnection con = com.openConnection(); 
     con.setConnectTimeout(20000); 
     is = new InputSource(new InputStreamReader(con.getInputStream())); 
     xr.parse(is); 
    } catch (Exception e) {... } 

L'erreur que je reçois est

07-30 18:15:28.713: WARN/System.err(596): java.io.FileNotFoundException: http://news.google.com/news?ned=us&topic=n&output=rss 
    07-30 18:15:28.763: WARN/System.err(596): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1064) 
    07-30 18:15:28.763: WARN/System.err(596): at com.mycityway.commonparsers.CommonParser.createFeed(CommonParser.java:311)  
    ... 

s'il vous plaît me suggérer la bonne façon de le faire

+0

Je suppose que vous avez fait cela plusieurs fois trop souvent, et Google envoie votre site scraper une erreur 404, comme ils ont déterminé que vous violez leurs conditions d'utilisation. – relet

+0

Vous pourriez essayer de poster le code réel qui reçoit l'erreur, puisque ce que vous avez posté ne sera pas compilé. 'myurl' n'est pas utilisé, et' urls' n'est pas défini. –

Répondre

3

Ils font navigateur simple et une simple vérification par l'en-tête User-Agent. S'ils ne l'aiment pas, ils envoient un 403 (interdit). Ajoutez simplement un générique et cela fonctionne. La ligne suivante est la première chose que j'essaie chaque fois que je rencontre ce problème et il fonctionne près de toujours:

URLConnection urlc = url.openConnection(); 
urlc.addRequestProperty("User-Agent", "firefox"); 
+0

excellente musikk, qui a travaillé comme charme – ganesh