不明白你要达到什么目的,你只是单纯的下载html文件,还是想实现离线看网页的功能,要是单纯的下载之后html中图片等等的地址怎么处理

解决方案 »

  1.   

    如果你要网页源码,调这个方法就可以:/**
         * 根据url获得页面源码
         * @param url 访问地址, 必备参数
         * @param method 请求方式post还是get, 默认get
         * @param params 参数列表 post必备, 比如:"name=张三&age=18"
         * @param sessionInfo 可以保持session, 默认不保持
         * @param encoding 编码格式, 默认UTF_8
         * @param isLine 得到的源码是否换行, 默认false
         * @return
         */
    public String sound(String url, String method, String params, String sessionInfo, String encoding, boolean isLine) throws Exception {
    Log.e("AbstractActivity", "调用web接口:" + url);
    encoding = (isBlank(encoding) ? HTTP.UTF_8 : encoding);
    method = (isBlank(method) ? Domain.REQUEST_GET : method.toUpperCase());
    String mathStr = "mathRandom=" + Math.random();
    if (method.equals(Domain.REQUEST_GET)) {url += (url.indexOf("?") != -1 ? "&" : "?") + mathStr;}
    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
    if (!isBlank(sessionInfo)) {conn.setRequestProperty("Cookie", sessionInfo);}
    conn.setRequestMethod(method);
    if (requestTime > 0) {
    conn.setConnectTimeout(requestTime);
    conn.setReadTimeout(requestTime);
    }
    if (method.equals(Domain.REQUEST_POST)) {
    conn.setDoOutput(true);
    OutputStream output = conn.getOutputStream(); 
    output.write((isBlank(params) ? mathStr : params + "&" + mathStr).getBytes(encoding)); 
    output.flush();output.close();
    }
    String response = FileUtil.get().readFile(conn.getInputStream(), encoding, 1, isLine);
    conn.disconnect();
    requestTime = Domain.LONG_REQUEST_TIME;
    return response;
    }如果你要保存图片,调这个方法:/**
     * 把网络上的文件保存到sd卡
     * @param url 完整的可访问的url
     * @param filePath 文件路径(物理路径)
     * @return boolean
     */
    public boolean saveUrlFile(String url, String filePath) throws Exception {
    return saveUrlFile(url, new File(filePath));
    }

    /**
     * 把网络上的文件保存到sd卡
     * @param url 完整的可访问的url
     * @param file 文件
     * @return boolean
     */
    public boolean saveUrlFile(String url, File file) throws Exception {
    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
    fileSize = conn.getContentLength();
    InputStream input = conn.getInputStream();
    if (null != input) {
    copyFile(input, file);
    conn.disconnect();
    return true;
    }
    return false;
    }
    /**
     * 复制文件
     * @param input 输入流
     * @param newFile 新文件
     * @throws Exception
     */
    public void copyFile(InputStream input, File newFile) throws Exception {
    if (null != progress) {progress.setMax(fileSize);}
    OutputStream output = new FileOutputStream(newFile);
    byte[] buffer = new byte[1024];
    int i = 0, total = 0;
    while ((i = input.read(buffer)) != -1) {
    output.write(buffer, 0, i);
    total += i;
    if (null != progress) {progress.setProgress(total);}
    }
    output.flush();output.close();input.close();
    }