Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 分析stackoverflow.com的rss源时出错_Android_Parsing_Rss - Fatal编程技术网

Android 分析stackoverflow.com的rss源时出错

Android 分析stackoverflow.com的rss源时出错,android,parsing,rss,Android,Parsing,Rss,我正在尝试创建rss提要应用程序,解析所有支持提要的网站。为此,我使用了Jsoup。并以这种方式解析不同类型的rss org.jsoup.select.Elements links = doc.select("link[type=application/rss+xml]"); org.jsoup.select.Elements links = doc.select("link[type=application/atom+xml]"); 它解析各种网站,如engadget.com、ndtv.

我正在尝试创建rss提要应用程序,解析所有支持提要的网站。为此,我使用了Jsoup。并以这种方式解析不同类型的rss

org.jsoup.select.Elements links = doc.select("link[type=application/rss+xml]");  
org.jsoup.select.Elements links = doc.select("link[type=application/atom+xml]");
它解析各种网站,如engadget.com、ndtv.com等,但当我试图浏览stackoverflow.com或1up.com等网站时,我遇到了以下错误

线程以未捕获异常退出(组=0x40efe378)

搜索错误#1甚至没有得到结果。 搜索eroror 2有很多。所有声明在任何网站url之前使用http://如

http://1up.com
但是错误仍然存在。我之前已经实现了这个,因为所有其他网站的rss都是经过解析的。 这是我的1up.com rss源日志

D/URL Length(4097): 14
D/url name(4097): http://1up.com
D/No of RSS links found(4097):  1
W/dalvikvm(4097): threadid=12: thread exiting with uncaught exception (group=0x40efe378)
E/AndroidRuntime(4097): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime(4097): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(4097):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(4097):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
E/AndroidRuntime(4097):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
E/AndroidRuntime(4097):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
E/AndroidRuntime(4097):     at java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime(4097): Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=/rss
E/AndroidRuntime(4097):     at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:591)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
E/AndroidRuntime(4097):     at com.maulik.rss.RssParser.getXmlFromUrl(RssParser.java:214)
E/AndroidRuntime(4097):     at com.maulik.rss.RssParser.getRSSFeed(RssParser.java:69)
E/AndroidRuntime(4097):     at com.maulik.rss.RSS_AddNewSiteActivity$loadRSSFeed.doInBackground(RSS_AddNewSiteActivity.java:97)
E/AndroidRuntime(4097):     at com.maulik.rss.RSS_AddNewSiteActivity$loadRSSFeed.doInBackground(RSS_AddNewSiteActivity.java:1)
E/AndroidRuntime(4097):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime(4097):     ... 5 more

IllegalStateException:目标主机不能为null,也不能在参数中设置。
表示问题是由无效的RSS地址引起的

From:
并且从您的logcat输出来看,请求似乎到达了错误的地址:http://rss?x=1(或相同的w/o http),因此它将链接处理为绝对链接,而不是相对链接1up.com/rss
在解析提要之前,您可以检测相对链接并将其转换为绝对链接


有些站点使用标准,有些站点使用标准RSS和Atom提要。
您可能需要为每种提要类型创建不同的解析算法。

非法状态异常:目标主机不能为空,也不能在参数中设置。
表示问题是由无效(或空)RSS地址引起的

From:
并且从您的logcat输出来看,请求似乎到达了错误的地址:http://rss?x=1(或相同的w/o http),因此它将链接处理为绝对链接,而不是相对链接1up.com/rss
在解析提要之前,您可以检测相对链接并将其转换为绝对链接


有些站点使用标准,有些站点使用标准RSS和Atom提要。
您可能需要为每种提要类型创建不同的解析算法。

当我单击此链接时,有人能告诉我如何查看1up.com的RSS文件吗?内容不是以xml显示的。如果有什么问题,我可以看看xml,然后我甚至可以试着找出问题所在。我想我发现了问题所在,网站engadget.com使用,我使用它本身进行解析。但是像stackoverflow.com这样的网站却没有。现在有人能告诉我如何停止用标签解析提要吗?什么时候会出现错误?当您尝试获取到源的链接时,或者当您尝试解析原始源时?@z2s8当我尝试获取rss url时,我使用日志消息来显示找到或没有找到的链接。因此,对于1up.com,日志消息是“找不到rss链接:1”,之后我得到了错误。但是对于stackoverflow.com rss,它声明没有找到rss链接,并且出现了错误。因此,是解析导致了错误。但是engadget和1up.com的rss是相同的结构,那么engadget的rss也被正确解析了。我认为,
IllegalStateException:目标主机不能为null,也不能在参数中设置。
表示问题是由无效(或null)rss地址引起的。从1up.com:
和您的logcat输出来看,请求似乎到达了错误的地址:(或相同的w/o http),因此它将链接作为绝对链接处理,而不是相对链接1up.com/rss。在解析提要之前,您可以检测相对链接并将其转换为绝对链接。有人能告诉我如何查看1up.com的rss文件吗?当我单击此链接时,内容不会以xml显示。如果有什么问题,我可以看看xml,然后我甚至可以试着找出问题所在。我想我发现了问题所在,网站engadget.com使用,我使用它本身进行解析。但是像stackoverflow.com这样的网站却没有。现在有人能告诉我如何停止用标签解析提要吗?什么时候会出现错误?当您尝试获取到源的链接时,或者当您尝试解析原始源时?@z2s8当我尝试获取rss url时,我使用日志消息来显示找到或没有找到的链接。因此,对于1up.com,日志消息是“找不到rss链接:1”,之后我得到了错误。但是对于stackoverflow.com rss,它声明没有找到rss链接,并且出现了错误。因此,是解析导致了错误。但是engadget和1up.com的rss是相同的结构,那么engadget的rss也被正确解析了。我认为,
IllegalStateException:目标主机不能为null,也不能在参数中设置。
表示问题是由无效(或null)rss地址引起的。从1up.com:
和您的logcat输出来看,请求似乎到达了错误的地址:(或相同的w/o http),因此它将链接作为绝对链接处理,而不是相对链接1up.com/rss。您可以在解析提要之前检测相对链接并将其转换为绝对链接。您好,感谢您的帮助,我已经为这两种rss标准创建了解析器。现在一切都好了!您好,谢谢您的帮助,我已经为这两种rss标准创建了解析器。现在一切都好了!
D/URL Length(4097): 14
D/url name(4097): http://1up.com
D/No of RSS links found(4097):  1
W/dalvikvm(4097): threadid=12: thread exiting with uncaught exception (group=0x40efe378)
E/AndroidRuntime(4097): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime(4097): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(4097):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(4097):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
E/AndroidRuntime(4097):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
E/AndroidRuntime(4097):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
E/AndroidRuntime(4097):     at java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime(4097): Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=/rss
E/AndroidRuntime(4097):     at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:591)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
E/AndroidRuntime(4097):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
E/AndroidRuntime(4097):     at com.maulik.rss.RssParser.getXmlFromUrl(RssParser.java:214)
E/AndroidRuntime(4097):     at com.maulik.rss.RssParser.getRSSFeed(RssParser.java:69)
E/AndroidRuntime(4097):     at com.maulik.rss.RSS_AddNewSiteActivity$loadRSSFeed.doInBackground(RSS_AddNewSiteActivity.java:97)
E/AndroidRuntime(4097):     at com.maulik.rss.RSS_AddNewSiteActivity$loadRSSFeed.doInBackground(RSS_AddNewSiteActivity.java:1)
E/AndroidRuntime(4097):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
E/AndroidRuntime(4097):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime(4097):     ... 5 more