gpt4 book ai didi

android - 使用 Groovy 在 Android 上仅部分下载 XML

转载 作者:搜寻专家 更新时间:2023-11-01 08:43:02 27 4
gpt4 key购买 nike

我一直在学习 Tim Buchalka 在 Udemy 上开设的“学习 Android Lolipop 开发”类(class)。他用 Java 授课,但我认为用 groovy 授课会是一个很好的学习体验。话虽这么说,我已经到了他正在创建一个应用程序的地步,该应用程序可以从 Apple's Website 下载 Top 10 Free Apps XML。

我编写的下载 XML 的应用程序部分是:

public class XMLDownloader extends AsyncTask<Object, Void, String>{
String myXMLData

@Override
protected String doInBackground(Object... urls) {
try {
myXMLData = downloadXML((String) urls[0])
}
catch (IOException e) {
return "Unable to download XML file"
}
return ""
}

protected void onPostExecute(String result) {
Log.d("OnPostExecute", myXMLData)
}

String downloadXML(String url) throws IOException {

String xmlContents = ""

BufferedReader reader

try {
reader = new URL(url).openStream().newReader()

while (reader.any()) {
xmlContents += "${reader.readLine()}\n"
}

return xmlContents;

} catch (Exception e) {
e.printStackTrace()
return null
} finally {
reader?.close()
}

}
}

出于某种原因,它似乎没有下载完整的 XML。

protected void onPostExecute(String result) {
Log.d("OnPostExecute", myXMLData)
}

只打印前 31 行。仅下载前 31 行就无法解析 XML。

使用XmlPullParser解析,得到

06-22 14:58:17.245 30926-30926/com.lategame.top10downloader W/System.err﹕ org.xmlpull.v1.XmlPullParserException: expected: /entry read: summary (position:END_TAG @17:54 in java.io.StringReader@158cb17f)

什么可能导致 XML 仅部分下载?

此外,忽略我正在使用 AsyncTask<Object, Void, String> 的事实并转换到 String , 而不是使用 AyncTask<String, Void, String> .这是解决另一个问题的方法。

最佳答案

显然,罪魁祸首是具有最大日志长度的 logcat。它正在下载完整的 XML,我无法将其全部注销。

关于android - 使用 Groovy 在 Android 上仅部分下载 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com