package com.demo.lib.common.okhttp.builder; import com.demo.lib.common.okhttp.request.PostFormRequest; import com.demo.lib.common.okhttp.request.RequestCall; import java.io.File; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * Created by zhy on 15/12/14. */ public class PostFormBuilder extends OkHttpRequestBuilder implements HasParamsable { private List files = new ArrayList<>(); @Override public RequestCall build() { return new PostFormRequest(url, tag, params, headers, files,id).build(); } public PostFormBuilder files(String key, Map files) { for (String filename : files.keySet()) { this.files.add(new FileInput(key, filename, files.get(filename))); } return this; } public PostFormBuilder addFile(String name, String filename, File file) { files.add(new FileInput(name, filename, file)); return this; } public static class FileInput { public String key; public String filename; public File file; public FileInput(String name, String filename, File file) { this.key = name; this.filename = filename; this.file = file; } @Override public String toString() { return "FileInput{" + "key='" + key + '\'' + ", filename='" + filename + '\'' + ", file=" + file + '}'; } } @Override public PostFormBuilder params(Map params) { this.params = params; return this; } @Override public PostFormBuilder addParams(String key, String val) { if (this.params == null) { params = new LinkedHashMap<>(); } params.put(key, val); return this; } }