org.xutils.http.loader.StringLoader

org.xutils.http.loader.StringLoader

package org.xutils.http.loader;



import android.text.TextUtils;



import org.xutils.cache.DiskCacheEntity;

import org.xutils.common.util.IOUtil;

import org.xutils.http.RequestParams;

import org.xutils.http.request.UriRequest;



import java.io.InputStream;



/**

* @author 注释者:王教成

* @version 注释版:1.0.0

* 字符串加载器

*/

/*package*/ class StringLoader extends Loader<String> {

private String charset = "UTF-8";//创建UTF-8字符集字符串

   private String resultStr = null;//声明结果字符串



   /**

    * 创建新实例

    * @return 返回字符串加载器

    */

   @Override

   public Loader<String> newInstance() {

return new StringLoader();

   }



/**

    * 设置请求参数

    * @param params 请求参数

    */

   @Override

   public void setParams(final RequestParams params) {

if (params != null) {

String charset = params.getCharset();//如果请求参数非空,从请求参数获取字符集

           if (!TextUtils.isEmpty(charset)) {

this.charset = charset;//如果字符集非空则赋值

           }

}

}



/**

    * 加载输入流

    * @param in 输入流

    * @return 返回字符串

    * @throws Throwable 抛出异常

    */

   @Override

   public String load(final InputStream in) throws Throwable {

resultStr = IOUtil.readStr(in, charset);//从输入流读取字符串

       return resultStr;//返回结果字符串

   }

/**

    * 加载Uri请求参数

    * @param request Uri请求参数

    * @return 返回字符串

    * @throws Throwable 抛出异常

    */

   @Override

   public String load(final UriRequest request) throws Throwable {

request.sendRequest();//发送请求

       return this.load(request.getInputStream());//通过Uri请求参数获取输入流,调用本类加载输入流方法

   }

/**

    * 加载,从磁盘缓存实体

    * @param cacheEntity 磁盘缓存实体

    * @return 返回字符串或null

    * @throws Throwable 抛出异常

    */

   @Override

   public String loadFromCache(final DiskCacheEntity cacheEntity) throws Throwable {

if (cacheEntity != null) {

return cacheEntity.getTextContent();//如果磁盘缓存实体非空,获取文本内容

       }

return null;

   }



/**

    * 保存到缓存实体

    * @param request Uri请求参数

    */

   @Override

   public void save2Cache(UriRequest request) {

saveStringCache(request, resultStr);//保存字符串缓存

   }

}

org.xutils.http.loader.StringLoader