ios – 以Swatch解析XML文件,无需等待Swift的完整下载

前端之家收集整理的这篇文章主要介绍了ios – 以Swatch解析XML文件,无需等待Swift的完整下载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在iOS中,我想在下载时从服务器解析 XML流.它不应该等到服务器完成构建XML并且下载完成.服务器以“chunks”形式构建XML,并将其直接发送到客户端.在我的应用程序中,我有一个UITableView,一旦我从服务器接收到它,应立即显示XML的元素.

我已经尝试使用XMLParser(contentsOf:URL)构造函数,但是这首先下载整个XML,然后解析它.还有另一个构造函数XMLParser(stream:InputStream),但是我不知道如何从URLConnection获取一个InputStream.我发现的唯一的事情是this question这是将近5岁,我不明白如何在Swift 3中做到这一点,如果它甚至起作用.

我尝试的另一件事是通过Libxml2,但是我有RAM使用或其他事情的问题(见我的old question).

如何解析XML流,而不必等待Swift的完整下载?

在Android中,我将使用XMLPullParser并具有:

URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoInput(true);
InputStream inputStream = connection.getInputStream();

XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance();
XmlPullParser pullParser = xmlFactoryObject.newPullParser();
pullParser.setInput(inputStream,null);
// here comes the actual parsing

解决方法

也许客户端/服务器有一些Session-Cookies有问题吗?尝试在每个请求后删除它们:
// Loops through each of the cookies and deletes them.
let cookieStore = HTTPCookieStorage.shared
for cookie in cookieStore.cookies ?? [] {
    cookieStore.deleteCookie(cookie)
}

猜你在找的iOS相关文章