Android OkHttp Post上传文件并且携带参数
这里整理一下 OkHttp 的 post 在上传文件的同时,也要携带请求参数的方法。
使用 OkHttp 版本如下:
compile 'com.squareup.okhttp3:okhttp:3.4.1'
代码如下:
protected void post_file(final String url, final Map map, File file) {
OkHttpClient client = new OkHttpClient();
// form 表单形式上传
MultipartBody.Builder requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM);
if(file != null){
// MediaType.parse() 里面是上传的文件类型。
RequestBody body = RequestBody.create(MediaType.parse("image/*"), file);
String filename = file.getName();
// 参数分别为, 请求key ,文件名称 , RequestBody
requestBody.addFormDataPart("headImage", file.getName(), body);
}
if (map != null) {
// map 里面是请求中所需要的 key 和 value
for (Map.Entry entry