zoukankan      html  css  js  c++  java
  • Android HttpClient和URLConnection两种下载HTML源码的方法

    两种方法分别采用HttpClient和URLConnection,同时解决乱码问题。

    经真机测试,好像是HttpClient方式比较稳定,一般都能下载到,但是URLConnection在EDGE网络下经常下不到数据。

    HttpClient方式:

    public String getHtml(String url) throws
    IOException, URISyntaxException{

      URI u=new URI(url);

      DefaultHttpClient httpclient =new DefaultHttpClient();        
      HttpGet httpget =new HttpGet(u);

      ResponseHandler<String> responseHandler = new BasicResponseHandler();
      String content = httpclient.execute(httpget, responseHandler);
      content = new String(content.getBytes("ISO-8859-1"),"UTF-8");        //没这个会乱码
      return content;
    }


    URLConnection方式:

    public String getHTML(String url) {

      try{

        URL newUrl=new URL(url);
        URLConnection connect=newUrl.openConnection();
        connect.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
        DataInputStream dis=new DataInputStream(connect.getInputStream());
        BufferedReader in = new BufferedReader(new InputStreamReader(dis,"UTF-8"));//目标页面编码为UTF-8

        String html="";
        String readLine=null;
        while((readLine=in.readLine())!=null){
            html=html+readLine;        } 

        in.close();
        return html;
              }

        catch(MalformedURLException me){        } 

      catch(IOException ioe){        }

      return null;}

  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/mumue/p/2433986.html
Copyright © 2011-2022 走看看