2016-12-27 5 views
0

Androidアプリでウェブサイトのコンテンツ(http://www.google.com)を読んでみたいと思います。しかしApacheのDefaultHttpClientとHttpURLConnectionと異なるコンテンツ

DefaultHttpClient client = new DefaultHttpClient(); 
HttpGet g = new HttpGet(target); 
HttpResponse res = client.execute(g); 
InputStream is = res.getEntity().getContent(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
StringBuilder builder = new StringBuilder(); 
    String line; 
    while ((line = reader.readLine()) != null) { 
     builder.append(line); 
    } 
return Base64.encodeToString(builder.toString().getBytes(), Base64.NO_WRAP); 

、私は同じことを達成するためのHttpURLConnectionを使用する場合、私はおよそ100.000文字の長さの異なるコンテンツを取得:非推奨DefaultHttpClientはまだ正常に動作し、私はいつもおよそ15.000文字のコンテンツ長を取得し使用します。

HttpURLConnection connection = (HttpURLConnection) new URL(target).openConnection(); 
InputStream is = connection.getInputStream(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
StringBuilder builder = new StringBuilder(); 
    String line; 
    while ((line = reader.readLine()) != null) { 
     builder.append(line); 
    } 
return Base64.encodeToString(builder.toString().getBytes(), Base64.NO_WRAP); 

誰にも分かりませんが、なぜ大きな違いがありますか?ありがとう!

+0

'HttpURLConnection'でどのような問題が発生していますか? –

+0

リクエストに同じユーザーエージェントが含まれているかどうかを確認しましたか? –

+0

DefaultHttpClient(15.000ではなく100.000文字)ではないHttpURLConnectionを使用すると、多くのJavaScriptがロードされます – user7346048

答えて

0

この問題は、ユーザーエージェントによって発生します。次のコードでは、2つのリクエストは同じように動作します。

connection.setRequestProperty("User-Agent","Apache-HttpClient"); 
関連する問題