Jsoup long parse()执行

时间:2013-12-10 06:50:27

标签: java android json parsing jsoup

我使用Jsoup发送POST请求。然后我需要将这些数据解析为JSON形式的文本。

我也写了一些代码来检查执行时间,因为它需要的时间比我想要的多得多。

Connection connection = Jsoup.connect("http://api.3botinka.com/api/synchronize")
                    .method(Connection.Method.POST)
                    .cookies(cookies)
                    .timeout(30000)
                    .ignoreContentType(true);
            if (data != null) {
                connection.data(data);
            }

            res = connection.execute();

            Logger.d(System.currentTimeMillis() - t2 + " = connection.execute");

            long t6 = System.currentTimeMillis();
            String tmp = res.parse().outerHtml();
            Logger.d(System.currentTimeMillis() - t6 + " = res.parse().outerHtml()");

            long t4 = System.currentTimeMillis();
            rezult = Jsoup.parse(tmp, "UTF-8").text();
            Logger.d(System.currentTimeMillis() - t4 + " = Jsoup.parse");

我在Logcat中得到了什么:

1588 = connection.execute
16150 = res.parse().outerHtml()
1466 = Jsoup.parse

parse()方法有超长的执行时间,我不知道如何解决这个问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。

Jsoup lib中还有其他方法可以在不解析的情况下获取页面内容。

解决方案是改变这一行:

String tmp = res.parse().outerHtml();

在这一行:

String tmp = res.body();

20次真的快了。可能是他们做了不同的工作,但在我的需要中也是如此。