在java中解析rss源时遇到java.io.FileNotFoundException
当我尝试使用sax解析器解析提要时,我无法找出出现此错误的原因。代码很简单,并且它已经成为许多其他url的工作代码在java中解析rss源时遇到java.io.FileNotFoundException,java,xml,filenotfoundexception,Java,Xml,Filenotfoundexception,当我尝试使用sax解析器解析提要时,我无法找出出现此错误的原因。代码很简单,并且它已经成为许多其他url的工作代码 try{ String myurl="http://news.google.com/news?ned=us&topic=n&output=rss" SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setValidating(false);
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) {... }
我得到的错误是
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)
...
请告诉我正确的方法,他们通过用户代理头进行简单的浏览器检查。如果他们不喜欢,他们会发送403(禁止)。只需添加一个泛型,它就可以工作。下面这行代码是我遇到此问题时尝试的第一件事,它几乎总是有效的:
URLConnection urlc = url.openConnection();
urlc.addRequestProperty("User-Agent", "firefox");
我猜你这么做的次数太多了,谷歌向你的网站发送了一个错误404,因为他们认定你违反了他们的使用条款。你可以试着发布出现错误的实际代码,因为你发布的代码无法编译<代码>myurl未使用,并且未定义
URL
。