2013-12-10 3 views
0

Я использую Jsoup для отправки POST запрос. Затем мне нужно разобрать эти данные в виде текста в форме JSON.Jsoup long parse() исполнение

Также я написал код для проверки времени выполнения, потому что требуется гораздо больше времени, чем я хочу.

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() метод имеет дополнительное длительное время выполнения, и я не знаю, как решить эту проблему. Есть идеи?

ответ

0

Я нашел решение этой проблемы.

Существует другой способ в Jsoup lib, чтобы получить содержание страницы без разбора.

Решение изменить эту строку:

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

на этой линии:

String tmp = res.body(); 

Это действительно быстрее в 20 раз. Может быть, они выполняют разные работы, но в моих потребностях это одно и то же.