2013-06-25 51 views
0

我試圖做一個下載網站的HTML:的Java下載HTML

String encoding = "UTF-8"; 

HttpContext localContext = new BasicHttpContext(); 

    HttpClient httpclient = new DefaultHttpClient(); 

HttpGet httpget = new HttpGet(MYURL); 

httpget.setHeader("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"); 


HttpResponse response = httpclient.execute(httpget, localContext); 

HttpEntity entity = response.getEntity(); 

InputStream instream = entity.getContent(); 

String html = getStringFromInputStream(encoding, instream); 

而且在和HTML字符串我得到:

... 
21912 
0 
0 

而且我沒有得到完整的HTML,任何想法如何解決?

編輯

private static String getStringFromInputStream(String encoding, InputStream instream) throws UnsupportedEncodingException, IOException { 

Writer writer = new StringWriter(); 


char[] buffer = new char[1024]; 

try { 

Reader reader = new BufferedReader(new InputStreamReader(instream, encoding)); 

int n; 

while ((n = reader.read(buffer)) != -1) { 

writer.write(buffer, 0, n); 

} 

} finally { 

instream.close(); 

} 

String result = writer.toString(); 

return result; 
} 
+0

什麼是你實施'getStringFromInputStream()'喜歡的方法? –

回答

1

我建議還是用EntityUtils

HttpEntity entity = response.getEntity(); 
String html = EntityUtils.toString(entity); 

HttpEntity entity = response.getEntity(); 
String html = EntityUtils.toString(entity, encoding);