欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android通过okhttpClient下载网页内容的实例代码

程序员文章站 2023-08-13 14:53:41
有时候我们需要通过自己的缓存机制来缓存网页内容,当没有网的时候显示本地的缓存,当有网的时候取最新的继续缓存到本地。 主要机制: 通过asynctask异步a...

有时候我们需要通过自己的缓存机制来缓存网页内容,当没有网的时候显示本地的缓存,当有网的时候取最新的继续缓存到本地。

android通过okhttpClient下载网页内容的实例代码

主要机制:

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。