0

アプリでを作成する Web サイトの HTML を取得する必要があるとしますHttpget。しかし、サイトにコンテンツのモバイル バージョンがある場合、通常のデスクトップ バージョンではなく、このバージョンが必要です (たとえば、モバイルでhttp://techcrunch.com/にアクセスすると、別の html が表示されます)。デスクトップでこのウェブサイトにアクセスすると取得されます)

次のコードを作成しました。

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
request.setHeader("User-Agent", System.getProperty("http.agent"));
HttpResponse response = client.execute(request);

BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
    sb.append(line);
}
String html = sb.toString();

しかしその後、html文字列には Web サイトの「デスクトップ」バージョンが含まれ、モバイル バージョンの HTML は含まれません。私の直感では、httpget の「User-Agent」のみを構成する必要があると言われていますが、それ以外は構成する必要があるようです。何か助けはありますか?

4

2 に答える 2

1

ほとんどのサイトはユーザー エージェントを見て、要求されたページがフル バージョンかモバイル バージョンかを判断するため、正しい方向に進んでいると思います。おそらく最初にテストするために、ユーザーエージェント文字列をハードコードされた値に設定するのが最善の策だと思いますか?メイビーのようなもの:

Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (Gecko のような KHTML) バージョン/4.0 モバイル Safari/534.30

于 2013-04-04T18:45:02.343 に答える