Retrofit上传多文件,多参数,包括数组

公司之前的项目中需要用到同时上传多文件,多参数,多数组的形式,因为使用的网络框架是自己封装的Rxjava +Retrofit 所以就研究了一下文件的上传方法,不看不知道,单个类型上传还挺简单,上面那些放在一起,差点把我搞蒙了,主要还是对Retrofit的使用不深刻,写此篇文章,用来记录一些心得:

private String guessMimeType(String path) {
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String contentTypeFor = fileNameMap.getContentTypeFor(path);
if (contentTypeFor == null) {
contentTypeFor = “application/octet-stream”;
}
return contentTypeFor;
}

public void photos() {

    ArrayList z= mPhotosSnpl.getData();

    List photos = new ArrayList<>(photosList.size());


    for (int i = 0; i < z.size(); i++) {

        File file = new File(photosList.get(i));

        RequestBody photoRequestBody = RequestBody.create(MediaType.parse(guessMimeType(file.getPath())), file);

        MultipartBody.Part x= MultipartBody.Part.createFormData("files", file.getName(), photoRequestBody);

        photos.add(x);

    }

    HashMap mapAes = new HashMap<>();

    MultipartBody.Part q= MultipartBody.Part.createFormData("q",null, b(q));


    MultipartBody.Part w= MultipartBody.Part.createFormData("w",null, b(w));

    photos.add(q);
    photos.add(w);


    for(int i=0;i put(@Part() List photos);

以上只是随手写了一下,记录一下。

你可能感兴趣的:(Android学习小结)