package com.hotent.im.network; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by yanhongliang on 16/4/25. */ public class HttpQueue { public interface OnComplete { void onComplete(Response response); } /** * 获取队列中,当前网络请求数量 * @return 返回当前网络请求数量 */ public static int getCount() { return datas.size(); } /** * 清空队列 */ public static void clean() { if (request != null) { request.cancel(); datas.clear(); request = null; } } private static ArrayList datas; private static AbstractHttpPost request; static { datas = new ArrayList<>(); } public static void addRequest( String actionUrl, Map params, HashMap files, OnComplete onComplete) { datas.add(new Data(actionUrl, params,files, onComplete)); send(); } private static void send() { if (datas.size() == 0) { return; } if (request != null) { return; } final Data data = datas.remove(0); request = new AbstractHttpPost() { @Override public void complete(Response response) { data.onComplete.onComplete(response); request = null; send(); } }; request.post(data.actionUrl, data.params, data.files); } private static class Data { String actionUrl; Map params; HashMap files; OnComplete onComplete; Data(String url, Map params, HashMap files, OnComplete onComplete) { this.actionUrl = url; this.params = params; this.files = files; this.onComplete = onComplete; } } }