怎么把网页保存在本地 不明白你要达到什么目的,你只是单纯的下载html文件,还是想实现离线看网页的功能,要是单纯的下载之后html中图片等等的地址怎么处理 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你要网页源码,调这个方法就可以:/** * 根据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(); } 一个新手问题!Eclipse下运行两个JAVA文件老是出错! 关于服务器写代码,推送消息到安卓机的问题 Android编译问题,急 android中有关NFC的驱动 Android:获取ListView中的View信息 为什么类放在XML文件内会运行失败??? 求助啊 列表的顺序问题 两个Android项目如何整合(或一个功能调用另一个功能)!!! 开发安卓应用内置银行卡支付,用网银在线是不是不科学啊?求解疑 android 用 WebView 显示本地网页问题 listview中的按钮响应时如何获取holder中某一组件的引用或是itemid
* 根据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();
}