所以我在类文件中有这段代码:
Document requestData (String url, [String postVars, bool pauseApp = false, onSuccess(Document ht)]) {
HttpRequest html = new HttpRequest();
html.open((postVars == null ? 'GET' : 'POST'), url, async: !pauseApp);
html.send(postVars);
if (pauseApp == true) { return html.responseXML; }
else { html.on.readyStateChange.add((Event e) {
if (html.readyState == HttpRequest.DONE && (html.status == 200 || html.status == 0)) {
try {
//HERE IS WHERE THE ISSUE IS ----V
DOMParser d = new DOMParser();
onSuccess(d.parseFromString(html.responseText,"text/html"));
}
catch (e) {
print("Error on requestData($url) async = $pauseApp - $e");
}
}
});
}
}
(整个参考来源:http ://pastebin.com/z21PM7r0 - 我使用 dartium 标志“--disable-web-security”来允许跨服务器请求)
问题基本上是,请求 responseXML 返回 null 而 responseText 按预期返回 HTML。为了解决这个问题,我尝试使用 DOM 解析器,但失败了。
由于我不拥有或控制我需要连接的服务器,我无法自己修复 html。我假设的问题是因为它的格式不正确。
这是我尝试使用上述函数解析的网站代码:http: //pastebin.com/KvMN9AuF
W3 验证器给出:193 个错误,16 个警告
有人知道如何解决这个问题吗?或者这是我将不得不放弃的东西......