2011-08-18 6 views
0

나는 HTML 콘텐츠를 얻으려고 노력하며, 모든 것은 1 가지를 제외하고는 작동합니다. 전체 코드를 다운로드하지 않고 추출 할 내용 (이미지, 이름에 대한 URL)을 건너 뛰고 빈 클래스 'obrazek'만 가지고 있습니다. 소스 코드 html이 완전하게 다운로드되지 않습니다.

 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; 

도움을 주셔서 감사합니다 :)

+0

가능하면 Apache Commons 또는 일부 HTML 파서를보고 InputStream을 String으로 변환하십시오 (Android에서 작동하는지 모르겠습니다). BufferedReader를 사용하는 것보다 훨씬 빠릅니다. webcrawler를 사용하고 BufferedReader를 사용하는 것이 너무 느립니다. –

답변

3

당신은 한 줄마다 건너 : 여기

내가 소스 코드를 얻기 위해 사용하는 코드입니다. BTW

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

해야한다 - 매우 좋습니다 - 나는 새로운 String 객체의 생성 각각의 반복을 피하기 위해 StringBuilder을 사용했다.

+0

고마워요! 완벽한 작품 :) 그 버그를 알지 못했다;/ – arathunku

+0

@arathunku - 당신은 환영합니다 :) – MByD

관련 문제