我正在嘗試使用Android的DefaultHTTPClient
獲取一個頁面,並使用Jsoup對其進行解析。我收到了一個非常奇怪的迴應,其中<body>
和</body>
標記中的所有HTML都被編碼爲某種東西。爲什麼使用DefaultHTTPClient獲取頁面時會出現亂碼文本?
<html>
<head></head>
<body>
��������������Y�#I�&�\�+��*;����/U���53�*��U�=�D�I:I� ����X�������=H��2�`Ѓ ��o��nͽ�C瘹;�l2Y�I_l�����;f��W�k��o2.����?�r>��œ�qYξ<<<;;�g*��ѡl���9>[email protected]��`R��V �c�������Ɂ��e�����,> }���A�����W�?��".��ˡhޖ�Qy1�oL�_�W�h?9�E?Ofe��KO�Q��(�Av�N�[email protected]��G�qvV�_G��W�g�'q�2�N��L�?�"鳷�x�o�����$9�}/;'#ȸ Q��&�2�\�a��aǔ�L�I�ԯ�=���TPFE� ���:�,�H�N�'QQԯ<>�i}�x��'$�'O ��[email protected]�h 2��ᓃ�CH��ʤO���0�LD)��p8�챺)
</body>
</html>
這是我的方法,提取頁面。
public String doGet(String strUrl, List<NameValuePair> lstParams) throws Exception {
String strResponse = null;
HttpGet htpGet = new HttpGet(strUrl);
//htpGet.addHeader("Accept-Encoding", "gzip, deflate");
htpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1");
DefaultHttpClient dhcClient = new DefaultHttpClient();
PersistentCookieStore pscStore = new PersistentCookieStore(this.objContext);
dhcClient.setCookieStore(pscStore);
HttpResponse resResponse = dhcClient.execute(htpGet);
strResponse = EntityUtils.toString(resResponse.getEntity());
return strResponse;
}
爲什麼會發生這種情況?
如果我使用Jsoup本身獲取頁面,則響應很好。我不得不使用Jsoup.connect("http://www.kat.ph/").get()