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;}

  • 相关阅读:
    系统使用 aspose.cell , 使得ashx第一次访问会变很慢
    aspx页面生成html
    SQL Server 监控 使用sp_trace_create
    IE6 IE7: div中table宽度100%导致的宽度问题
    VSTO Word2003 添加菜单栏, 添加工具栏
    mysql主主同步的配置
    linux永久添加静态路由有两种方法
    centos 7 进入单用户系统并且更改所有系统文件
    rabbitmq-3.7.2编译安装全过程
    linux centos 升级 make 4.2
  • 原文地址:https://www.cnblogs.com/mumue/p/2433986.html
Copyright © 2011-2022 走看看