解析HTML源代码的奇怪行为(WLan与移动互联网(3G))

我有一个奇怪的问题,分别是使用我的自编程Android应用程序的奇怪效果。 我的应用程序读出网站的HTML源代码并解析它以获取我想要的信息。它工作......哦,不是真的一致。 场景1:我在家里使用我的WLan并运行我的应用程序 - >一切正常。所有需要的项目都可以在我的ListView中看到 场景2:我使用我的移动互联网,如Edge或HSDPA - >我的ListView仅呈现1个项目。所有其他人都消失了...... 我不知道为什么。是否有任何超时,扣留应用程序以读出整个HTML网站?但所有其他项目将直接在HTML源代码的下一行... 我不知道如何解决它。在谷歌我没有找到其他人有同样的问题。 问候,朱利安 这是一些代码
    // With this I get the HTML-source-code
URL url = new URL("http://www.area4.de);
URLConnection conn = url.openConnection();
DataInputStream dataIn = new DataInputStream(conn.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(dataIn, "UTF-8"));
String line;

// Then I parse the code with 
while ((line=reader.readLine()) != null)
{
   if (line.contains(searchPattern))
       al.add(line); //al is an ArrayList
}
这就是我在我的应用程序中所做的一切(除了在ListView中呈现arrayList)。 您可以在浏览器中看到的站点的源代码(Ctrl + u)。我搜索这些行
<a href="/de/bands/thirty-seconds-to-mars/" class="Schrift_22">THIRTY SECONDS TO MARS //</a>
<a href="/de/bands/dropkick-murphys/" class="Schrift_20_dunkel">DROPKICK MURPHYS //</a>
有了3G,我只能获得三十秒的火星......     
已邀请:
啊,我解决了。我可以通过这段代码片段进行搜索,如上所示
while ((line=reader.readLine()) != null)
{
   if (line.contains(searchPattern))
       al.add(line); //al is an ArrayList
}
使用WLan(以及我的模拟器),每个乐队都有一个新的线路。 G。:
line1
line2
line3
....
但是使用Edge或HDSPA,我用Wlan获得的所有行都写在一行中。
line1line2line3....
和我的正则表达式一样,当我找到一个想要的目标时,我会在行之前和之后删除所有内容。希望你明白,用外语解释它很难。 一个简单的
while (line.contains(searchPattern))
固定它。     
在发送解析之前,您总是可以尝试读取整个http响应。这样您就可以正确加载整个文档。     

要回复问题请先登录注册