Java 源代码html不';下载不完整

Java 源代码html不';下载不完整,java,android,Java,Android,我试着获取HTML内容,除了一件事之外,所有的东西都可以找到。它没有下载完整的代码,也没有跳过我想要提取的内容(图像的URL、名称),我只有空白类“obrazek” 以下是我用来获取源代码的代码: String SourceCode(String adres) throws IllegalStateException, IOException { HttpClient httpClient = new DefaultHttpClient(); HttpContext

我试着获取HTML内容,除了一件事之外,所有的东西都可以找到。它没有下载完整的代码,也没有跳过我想要提取的内容(图像的URL、名称),我只有空白类“obrazek”

以下是我用来获取源代码的代码:

     String SourceCode(String adres) throws IllegalStateException, IOException
{

    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpGet httpGet = new HttpGet(adres);
    HttpResponse response = null;
    try {
         response = httpClient.execute(httpGet, localContext);
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    BufferedReader reader = new BufferedReader(
            new InputStreamReader(response.getEntity().getContent()
                    )
            );
    String result = "";
    while(reader.readLine() != null)
    {
        result += reader.readLine();
    }
    reader.close();
    return result;

谢谢您的帮助:)

您每次跳过一行。应该是

StringBuilder result = new StringBuilder();
String line;
while((line = reader.readLine()) != null)
{
    result.append(line);
}
reader.close();
return result.toString();

顺便说一句-我以前避免每次迭代都创建新的字符串对象-非常推荐。

每次跳过一行。应该是

StringBuilder result = new StringBuilder();
String line;
while((line = reader.readLine()) != null)
{
    result.append(line);
}
reader.close();
return result.toString();

顺便说一句-每次迭代我都避免创建新的字符串对象-非常推荐。

谢谢!完美工作:)我没有注意到那个bug/非常感谢。完美工作:)我没有注意到那个bug/如果可能的话,可以查看ApacheCommons或一些HTML解析器来将InputStream转换为字符串(我不知道在Android中是否有效)。比使用BufferedReader快得多。我做了一个webcrawler,使用BufferedReader太慢了。如果可能的话,看看ApacheCommons或一些HTML解析器,将InputStream转换成字符串(我不知道在Android中是否有效)。比使用BufferedReader快得多。我做了一个webcrawler,使用BufferedReader太慢了。