package com.cheng.networkframestudy.okhttp.frame.builder; import com.cheng.networkframestudy.okhttp.frame.request.PostFormRequest; import com.cheng.networkframestudy.okhttp.frame.request.RequestCall; import java.io.File; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * 李旺成 * 2016年2月20日08:12:17 */ public class PostFormBuilder extends OkHttpRequestBuilder { private List<FileInput> mFiles = new ArrayList<>(); public PostFormBuilder addFile(String name, String filename, File file) { mFiles.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 url(String url) { this.mUrl = url; return this; } @Override public PostFormBuilder tag(Object tag) { this.mTag = tag; return this; } @Override public PostFormBuilder params(Map<String, String> params) { this.mParamMap = params; return this; } @Override public PostFormBuilder addParams(String key, String val) { if (this.mParamMap == null) { mParamMap = new LinkedHashMap<>(); } mParamMap.put(key, val); return this; } @Override public PostFormBuilder headers(Map<String, String> headers) { this.mHeaderMap = headers; return this; } @Override public PostFormBuilder addHeader(String key, String val) { if (this.mHeaderMap == null) { mHeaderMap = new LinkedHashMap<>(); } mHeaderMap.put(key, val); return this; } @Override public RequestCall build() { return new PostFormRequest(mUrl, mTag, mParamMap, mHeaderMap, mFiles).build(); } }