上一篇博客介绍了Xutils框架-HTTP使用详解,这里在介绍一下Xutils框架HTTP模块的内部代码。
按照我在项目中使用的顺序讲解下各个模块:
1.HttpUtils
这个是Xutils框架HTTP模块之中最主要的部分,首先在构造方法中对HTTP进行了各种配置,有connTimeout(连接超时),做多连接次数等。
下面定义的是HTTP的默认参数
private String responseTextCharset = HTTP.UTF_8;//默认编码格式是 utf-8
private long currentRequestExpiry = HttpCache.getDefaultExpiryTime();//60s
private final static int DEFAULT_CONN_TIMEOUT = 1000 * 15; // 15s
private final static int DEFAULT_RETRY_TIMES = 3;
private static final String HEADER_ACCEPT_ENCODING = "Accept-Encoding";
private static final String ENCODING_GZIP = "gzip";
private final static int DEFAULT_POOL_SIZE = 3;
private final static PriorityExecutor EXECUTOR = new PriorityExecutor(DEFAULT_POOL_SIZE);
对于HTTP参数的传递,就必须要提到RequestParams
private List<HeaderItem> headers;//http head
private List<NameValuePair> queryStringParams;//可以添加键值对参数,也是在http head,(www.baidu.com?ret=1&msg=ss)
private HttpEntity bodyEntity;//http body(一般用于自定义)
private List<NameValuePair> bodyParams;//http body(一般添加字符串的键值对)
private HashMap<String, ContentBody> fileParams;//http body(可以添加File文件的键值对)