Android 使用okHttp3上载动态文件数

Android 使用okHttp3上载动态文件数,android,file-upload,okhttp,okhttp3,Android,File Upload,Okhttp,Okhttp3,如何用v3管理动态文件数的上传,我已经用旧版本的OkHttp实现了,它是compile'com.squareup.OkHttp:OkHttp:2.6.0' 类的形式有一些变化,多部分实体现在已经建模。他们用更强大的FormBody和FormBody.Builder组合替换了不透明的FormEncodingBuilder。类似地,他们将MultipartBuilder升级为MultipartBody、MultipartBody.Part和MultipartBody.Builder 下面的代码是旧版

如何用v3管理动态文件数的上传,我已经用旧版本的OkHttp实现了,它是
compile'com.squareup.OkHttp:OkHttp:2.6.0'

类的形式有一些变化,多部分实体现在已经建模。他们用更强大的FormBody和FormBody.Builder组合替换了不透明的FormEncodingBuilder。类似地,他们将MultipartBuilder升级为MultipartBody、MultipartBody.Part和MultipartBody.Builder

下面的代码是旧版本的

final MediaType MEDIA_TYPE = MediaType.parse(AppConstant.arrImages.get(i).getMediaType());

//If you can have multiple file types, set it in ArrayList

MultipartBuilder buildernew = new MultipartBuilder()
        .type(MultipartBuilder.FORM)
        .addFormDataPart("title", title);   //Here you can add the fix number of data.

for (int i = 0; i < AppConstants.arrImages.size(); i++) {  //loop to add dynamic number of files.
    File f = new File(FILE_PATH,TEMP_FILE_NAME + i + ".png");
    if (f.exists()) {
        buildernew.addFormDataPart(TEMP_FILE_NAME + i, TEMP_FILE_NAME + i + FILE_EXTENSION, RequestBody.create(MEDIA_TYPE, f));
    }
}

RequestBody requestBody = buildernew.build();  

//Build the object of MultipartBuilder and get object of RequestBody.
我用
MultipartBody
尝试了相同的逻辑,但没有找到任何有效的解决方案。
或者我是否需要为不同的情况实现相同的
(这是不可行的)

构建器仍然存在并且可以用于此。像以前一样将其存储在本地,并在循环中修改:

MultipartBody.Builder buildernew = new MultipartBody.Builder()
      .setType(MultipartBody.FORM)
      .addFormDataPart("title", title);   //Here you can add the fix number of data.

for (int i = 0; i < AppConstants.arrImages.size(); i++) {
    File f = new File(FILE_PATH,TEMP_FILE_NAME + i + ".png");
    if (f.exists()) {
        buildernew.addFormDataPart(TEMP_FILE_NAME + i, TEMP_FILE_NAME + i + FILE_EXTENSION, RequestBody.create(MEDIA_TYPE, f));
    }
}

MultipartBody requestBody = buildernew.build();  
MultipartBody.buildernew=new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart(“标题”,标题)//在这里,您可以添加固定数量的数据。
对于(int i=0;i
@jake Wharton,你能回答这个问题吗
MultipartBody.Builder buildernew = new MultipartBody.Builder()
      .setType(MultipartBody.FORM)
      .addFormDataPart("title", title);   //Here you can add the fix number of data.

for (int i = 0; i < AppConstants.arrImages.size(); i++) {
    File f = new File(FILE_PATH,TEMP_FILE_NAME + i + ".png");
    if (f.exists()) {
        buildernew.addFormDataPart(TEMP_FILE_NAME + i, TEMP_FILE_NAME + i + FILE_EXTENSION, RequestBody.create(MEDIA_TYPE, f));
    }
}

MultipartBody requestBody = buildernew.build();