MCPcopy Index your code
hub / github.com/wyouflf/xUtils3 / HttpTask

Class HttpTask

xutils/src/main/java/org/xutils/http/HttpTask.java:36–645  ·  view source on GitHub ↗

Created by wyouflf on 15/7/23. http 请求任务

Source from the content-addressed store, hash-verified

34 * http 请求任务
35 */
36public class HttpTask<ResultType> extends AbsTask<ResultType> implements ProgressHandler {
37
38 // 请求相关
39 private RequestParams params;
40 private UriRequest request;
41 private Type loadType;
42 private volatile boolean hasException = false;
43 private final Callback.CommonCallback<ResultType> callback;
44
45 // 缓存控制
46 private Object rawResult = null;
47 private volatile Boolean trustCache = null;
48 private final Object cacheLock = new Object();
49
50 // 扩展callback
51 private Callback.CacheCallback<ResultType> cacheCallback;
52 private Callback.PrepareCallback prepareCallback;
53 private Callback.ProgressCallback progressCallback;
54 private RequestInterceptListener requestInterceptListener;
55
56 // 日志追踪
57 private RequestTracker tracker;
58
59 // 文件下载任务
60 private final static AtomicInteger sCurrFileLoadCount = new AtomicInteger(0);
61 private static final HashMap<String, WeakReference<HttpTask<?>>>
62 DOWNLOAD_TASK = new HashMap<String, WeakReference<HttpTask<?>>>(1);
63
64 // 线程池
65 private final Executor executor;
66 private static final PriorityExecutor HTTP_EXECUTOR = new PriorityExecutor(5, true);
67 private static final PriorityExecutor CACHE_EXECUTOR = new PriorityExecutor(5, true);
68
69
70 public HttpTask(RequestParams params, Callback.Cancelable cancelHandler,
71 Callback.CommonCallback<ResultType> callback) {
72 super(cancelHandler);
73
74 assert params != null;
75 assert callback != null;
76
77 // set params & callback
78 this.params = params;
79 this.callback = callback;
80 if (callback instanceof Callback.CacheCallback) {
81 this.cacheCallback = (Callback.CacheCallback<ResultType>) callback;
82 }
83 if (callback instanceof Callback.PrepareCallback) {
84 this.prepareCallback = (Callback.PrepareCallback) callback;
85 }
86 if (callback instanceof Callback.ProgressCallback) {
87 this.progressCallback = (Callback.ProgressCallback<ResultType>) callback;
88 }
89 if (callback instanceof RequestInterceptListener) {
90 this.requestInterceptListener = (RequestInterceptListener) callback;
91 }
92
93 // init tracker

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected