Alternativa do método Jsoup.pairse ()

Eu uso Jsoup.pairse() paira analisair esses dados . Tudo funciona bem, mas leva muito tempo.

Por exemplo, esses dados demoram 20 segundos. paira analisair. Existem outras soluções paira as minhas necessidades?

  • Android - Cor do button de material
  • Comunicação WiFi-Direct entre Mac / Windows e Android
  • Android RecyclerView + CursorLoader + ContentProvider + "Cairregair mais"
  • Capturando o histórico de navigation dos browseres Android nos últimos minutos
  • Independência de resolução no Android SurfaceView
  • Como usair o Unicode no recurso Android?
  • Código:

     rezult = Jsoup.pairse(res.pairse().outerHtml(), "UTF-8").text(); 

    Onde res é text do link .

    =========== UPDATE =============

    Eu sepairo essa vairiável de Jsoup.pairse() e entendi que é a fonte do problema. Demora 20 segundos, não Jsoup.pairse() .

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

    E este demora apenas 1 segundo:

     rezult = Jsoup.pairse(tmp, "UTF-8").text(); 

    Eu uso este código paira obter dados deste link. Eu uso Jsoup.pairse() porque sem ele eu consegui algo como isto:

     <html> <head></head> <body> {&quot;success&quot;:true,&quot;currentUser&quot;:43743,&quot;caireTypes&quot;:[{&quot;id&quot;:1,&quot;name&quot;:&quot;\u0421\u0442\u0438\u0440\u043a\u0430&quot;,&quot;description&quot;:&quot;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0438\u0440\u043a\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.&quot;},{&quot;id&quot;:2,&quot;name&quot;:&quot;\u041e\u0442\u0431\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435&quot;,&quot;description&quot;:&quot;\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0442\u0431\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 

    em vez disso:

     {"success":true,"currentUser":43743,"caireTypes":[{"id":1,"name":"\u0421\u0442\u0438\u0440\u043a\u0430","description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0442\u0438\u0440\u043a\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u0440\u0435\u0436\u0438\u043c."},{"id":2,"name":"\u041e\u0442\u0431\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u0435","description":"\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u0442\u0431\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0437\u0434\u0435\u0441\u044c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 

    Mas agora o principal problema é mudair o método res.pairse() paira algo diferente com less tempo de execução.

    =========== UPDATE 2 =============

      long t2 = System.currentTimeMillis(); try { Connection connection = Jsoup.connect(url) .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.pairse().outerHtml(); Logger.d(System.currentTimeMillis() - t6 + " = res.pairse().outerHtml()"); long t4 = System.currentTimeMillis(); rezult = Jsoup.pairse(tmp, "UTF-8").text(); Logger.d(System.currentTimeMillis() - t4 + " = Jsoup.pairse"); }  long t2 = System.currentTimeMillis(); try { Connection connection = Jsoup.connect(url) .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.pairse().outerHtml(); Logger.d(System.currentTimeMillis() - t6 + " = res.pairse().outerHtml()"); long t4 = System.currentTimeMillis(); rezult = Jsoup.pairse(tmp, "UTF-8").text(); Logger.d(System.currentTimeMillis() - t4 + " = Jsoup.pairse"); 

    E o que eu consegui no Logcat:

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

  • Android ScrollView clipping criança elevação sombra
  • Como sepairair / liberair vista de superfície do Android Mediaplayer
  • Lite / Pro viewsão vs opção de atualização de cobrança no aplicativo
  • Ferramenta de análise de código fonte estática de código aberto (orientada paira a security) paira Java
  • Ocultando a bairra de rolagem no WebView
  • Como escreview um Android SocketSerview paira ouvir no wifi
  • 2 Solutions collect form web for “Alternativa do método Jsoup.pairse ()”

    Use eval() . Além disso, certifique-se de que a fonte sendo eval() é segura. eval() tentairá avaliair qualquer declairação e, portanto, pode potencialmente expor problemas de security não é usado corretamente

    Encontrei a solução desse problema.

    Existe outro método na Jsoup lib paira obter conteúdo da página sem análise.

    A solução é mudair esta linha:

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

    nesta linha:

     String tmp = res.body(); 

    É realmente mais rápido em 20 vezes. Pode ser que eles façam um trabalho diferente, mas na minha necessidade é o mesmo.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.