由于在项目上需要用到多文件上传并且踩了一些坑。所以特此记录。
废话不多说直接贴代码
OkHttpClient client = new OkHttpClient();
MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM);
bodyBuilder.addFormDataPart("carownerid", "123456"); //往form表单中添加常规参数
File file = new File("/sdcard/data/aobama.jpg");
bodyBuilder.addFormDataPart("identitycard", file.getName(), RequestBody.create(MediaType.parse("multipart/form-data"), file)); //往表单中添加文件
file = new File("/sdcard/data/aobama_1.jpg");
bodyBuilder.addFormDataPart("identitycard2", file.getName(), RequestBody.create(MediaType.parse("multipart/form-data"), file));
RequestBody requestBody = bodyBuilder.build();
Request request = new Request.Builder()
.header("Authorization", "eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp")
.url("http://192.168.3.215:8000/clientcar/clientCar/uploadIdentitycard")
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
注意事项: 1、MediaType是需要注意的一个事项 如果服务器做了格式的校验则修改此处内容如("image/png")为PNG格式的图片如果类型对不上则会导致上传失败
2、如果服务器未做格式校验但是还是上传失败甚至是没有响应则可能为文件过大导致超时(需要服务器修改客户端无限制),又或者为传输超时此时应该检查服务器和客户端的超时时间