android通过okhttpClient下载网页内容的实例代码
程序员文章站
2023-08-13 14:53:41
有时候我们需要通过自己的缓存机制来缓存网页内容,当没有网的时候显示本地的缓存,当有网的时候取最新的继续缓存到本地。
主要机制:
通过asynctask异步a...
有时候我们需要通过自己的缓存机制来缓存网页内容,当没有网的时候显示本地的缓存,当有网的时候取最新的继续缓存到本地。
主要机制:
通过asynctask异步asynctask请求,将得到的response.body()缓存起来。
主要代码如下:
//通过okhttpclient加载html的方式先判断网页是否能走通 class webviewstatusrequester extends asynctask<string, string, integer> { string url; @override protected void onpreexecute() { super.onpreexecute(); } @override protected void onpostexecute(integer result) { super.onpostexecute(result); result = 0; log.e(tag, "onpostexecute: result="+result +";url="+url); if(result == 1) { m_commonissuewebview.loadurl(url); } else if(result == 0) { getcachehtmlstrategy(); } } @override protected integer doinbackground(string... params) { url = params[0]; try { okhttpclient client = new okhttpclient(); request request = new request.builder().url(url).build(); response response = client.newcall(request).execute(); //缓存到本地文件 fileutil.writefile(pathconfig.getqahtmlcachepath(getactivity()),response.body().string()); if(response.issuccessful()) { return 1; } else { log.i("tag", "fail code:" + response.code()); return 0; } } catch (ioexception e) { e.printstacktrace(); } return 0; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。