网上找了很多,但是都是断断续续的不是很完整,这里二话不说上干货!
//类型
private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/*");
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM); for (int i = 0; i < photoPath.size() - 1; i++) { File file = new File(photoPath.get(i)); if (file != null) { builder.addFormDataPart("image", file.getName(), RequestBody.create(MEDIA_TYPE_PNG, file)) .addFormDataPart("key", "values") .addFormDataPart("key", "values") .addFormDataPart("key", "values") .addFormDataPart("key", "values") .build(); MultipartBody requestBody = builder.build(); OkHttpClient client = new OkHttpClient(); //构建请求 Request request = new Request.Builder() .url(url)//地址 .post(requestBody)//添加请求体 .addHeader(key, value) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Logger.e(TAG, "上传失败:e.getLocalizedMessage() = " + e.getLocalizedMessage()); } @Override public void onResponse(Call call, Response response) throws IOException { Logger.e(TAG, "上传照片成功:response = " + response.body().string()); } });
和后台协商是循环上传到图片服务器然后返回图片的url 再次和其他数据上传。