/** * 上传多文件 * @param url * @param what * @param map 普通参数 * @param fileList 文件集合 * @param fileKeyList 文件的key集合 * @param listener */ public static void asyncPostFileRequest(String url, int what, Map<String,String> map, List<File> fileList,List<String> fileKeyList, OnResponseListener<String> listener){ /** * 取消队列中已开始的请求 */ mRequestQueue.cancelBySign(what); /** * 创建请求对象 */ Request<String> request = NoHttp.createStringRequest(url, RequestMethod.POST); if (fileList != null && fileList.size()>0){ for (int i = 0; i < fileList.size(); i++) { // request.add(fileKey,fileList.get(i)); request.add(fileKeyList.get(i),fileList.get(i)); } } // 非标准Http协议,改变缓存模式为REQUEST_NETWORK_FAILED_READ_CACHE // request.setCacheMode(CacheMode.REQUEST_NETWORK_FAILED_READ_CACHE); /** * 添加请求参数 */ if (map != null){ for (Map.Entry<String,String> entry:map.entrySet()){ if (entry.getKey() != null){ request.add(entry.getKey(),entry.getValue()); } } } // request.getParamKeyValues; // for (:) { // // } /** * 设置取消请求标识 */ request.setCancelSign(what); /** * what: 当多个请求同时使用同一个OnResponseListener时 用来区分请求 * request: 请求对象 * onResponseListener: 回调对象,接收请求结果 */ mRequestQueue.add(what,request,listener); }
如果上传的是 图片格式的文件 则服务器端接收的 参数为 -----: picatures 无法改变 filekeylist 就是 json数组里面 的 key key后面是对应的文件信息
下面这个示例 是接口的请求参数
pictures=[{"business_license":XXX},{"card_fase":XXX},{"card_back":XXX}]