Android 如何在改装多部件请求中获取上载进度百分比?

Android 如何在改装多部件请求中获取上载进度百分比?,android,rest,retrofit2,retrofit2.6,Android,Rest,Retrofit2,Retrofit2.6,以下是我正在使用2执行的多部分请求。 我想要的是以某种方式得到上传百分比的回调。但我找不到一个合适的方法来做这件事。我看到的方法很少,但它们只处理单个文件我想要实现的是获得上传进度占合并请求中发送的所有文件的百分比。 @多部分 @立柱(“立柱/车辆/详图”) 呼叫上传车辆( @部分(“用户id”)int userId, @部件(“名称”)字符串车辆名称, @零件(“编号”)库存编号, @Part MultipartBody.Part mainImage, @部分多部件车身。部分发动机罩图像,

以下是我正在使用
2
执行的多部分请求。 我想要的是以某种方式得到
上传百分比的回调。但我找不到一个合适的方法来做这件事。我看到的方法很少,但它们只处理单个文件我想要实现的是获得上传进度占合并请求中发送的所有文件的百分比。


@多部分
@立柱(“立柱/车辆/详图”)
呼叫上传车辆(
@部分(“用户id”)int userId,
@部件(“名称”)字符串车辆名称,
@零件(“编号”)库存编号,
@Part MultipartBody.Part mainImage,
@部分多部件车身。部分发动机罩图像,
@部分多部件车身。部分保险杠图像,
@部件多部件车身。部件内部图像,
@部分多部件车身。部分正面尺寸,
@零件多零件主体。零件背面图像,
@部分多部件主体。部分仪表板映像,
@部分多部件车身。部分前照灯图像,
@部分多部件车身。部分尾灯图像,
@零件多零件主体。零件后台工程图像
);
编辑

有关如何创建请求的更多代码。


File mainImage=新文件(vehicleEntity.mainImage);
RequestBody requestMainFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),mainImage);
MultipartBody.Part main=MultipartBody.Part.createFormData(“main_image”,mainImage.getName(),requestMainFile);
文件罩图像、保险杠图像、内饰图像、前排座椅图像、后排座椅图像、仪表板图像、前照灯图像、尾灯图像、后置发动机图像;
多部件车身。部分发动机罩=零,保险杠=零,内部=零,前排座椅=零,后排座椅=零,仪表板=零,前照灯=零,尾灯=零,后发动机=零;
if(vehicleEntity.hoodsImage!=空){
hoodImage=新文件(vehicleEntity.hoodsImage);
RequestBody requestHoodFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),hoodImage);
hood=MultipartBody.Part.createFormData(“hoods”,hoodImage.getName(),requestHoodFile);
}
if(vehicleEntity.bumperImage!=null){
bumperImage=新文件(vehicleEntity.bumperImage);
RequestBody requestBumperFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),bumperImage);
保险杠=MultipartBody.Part.createFormData(“保险杠”,mainImage.getName(),requestBumperFile);
}
if(vehicleEntity.interiorImage!=空){
interiorImage=新文件(vehicleEntity.interiorImage);
RequestBody requestInteriorFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),interiorImage);
interior=MultipartBody.Part.createFormData(“interiors”,mainImage.getName(),requestInteriorFile);
}
if(vehicleEntity.frontSeatImage!=null){
frontSeatImage=新文件(vehicleEntity.frontSeatImage);
RequestBody requestFrontSeatFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),frontSeatImage);
frontSeat=MultipartBody.Part.createFormData(“front_seat”,mainImage.getName(),requestFrontSeatFile);
}
if(vehicleEntity.backSeatImage!=null){
backSeatImage=新文件(vehicleEntity.backSeatImage);
RequestBody requestBackSeatFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),backSeatImage);
后座=MultipartBody.Part.createFormData(“后座”,mainImage.getName(),requestBackSeatFile);
}
if(vehicleEntity.dashboardImage!=null){
dashboardImage=新文件(vehicleEntity.dashboardImage);
RequestBody requestDashboardFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),dashboardImage);
dashboard=MultipartBody.Part.createFormData(“dashboard”,mainImage.getName(),requestDashboardFile);
}
if(vehicleEntity.HeadlumpsImage!=空){
HeadlumpsImage=新文件(vehicleEntity.HeadlumpsImage);
RequestBody RequestHeadlumpsFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),HeadlumpsImage;
headLamps=MultipartBody.Part.createFormData(“headLamps”,mainImage.getName(),requestHeadLampsFile);
}
if(vehicleEntity.tailLightsImage!=空){
尾灯图像=新文件(vehicleEntity.tailLightsImage);
RequestBody requesttailslinkfile=RequestBody.create(MediaType.parse(“多部分/表单数据”),tailLightImage);
尾灯=MultipartBody.Part.createFormData(“尾灯”,mainImage.getName(),requesttailfile);
}
if(vehicleEntity.backEngineImage!=空){
backEngineImage=新文件(vehicleEntity.backEngineImage);
RequestBody requestBackEngineFile=RequestBody.create(MediaType.parse(“多部分/表单数据”),backEngineImage);
backEngine=MultipartBody.Part.createFormData(“尾灯”,mainImage.getName(),requestBackEngineFile);
}
int userId=Integer.parseInt(sharedPreferences.getString(USER_ID,null));
字符串vehicleName=vehicleEntity.vehicleName;
int stockNumber=整数.parseInt(车辆实体.stockNumber);
Call Call=apinterface.uploadVehicle(
用户ID、车辆名称、库存编号、主、,
发动机罩,保险杠,内饰,前排座椅,后排座椅,
仪表板、前照灯、尾灯、后发动机
);

顺便说一句,你试过这个吗@FaizanHaidarKhan如何获得多个项目的联合进展

    @Multipart
    @POST("post/vehicle/detail")
    Call<SuccessModel> uploadVehicle(

            @Part("user_id") int userId,
            @Part("name") String vehicleName,
            @Part("number") int stockNumber,
            @Part MultipartBody.Part mainImage,
            @Part MultipartBody.Part hoodsImage,
            @Part MultipartBody.Part bumperImage,
            @Part MultipartBody.Part interiorImage,
            @Part MultipartBody.Part frontSeatImage,
            @Part MultipartBody.Part backSeatImage,
            @Part MultipartBody.Part dashboardImage,
            @Part MultipartBody.Part headLampsImage,
            @Part MultipartBody.Part tailLightsImage,
            @Part MultipartBody.Part backEngineImage
    );


File mainImage = new File(vehicleEntity.mainImage);

            RequestBody requestMainFile = RequestBody.create(MediaType.parse("multipart/form-data"), mainImage);

            MultipartBody.Part main = MultipartBody.Part.createFormData("main_image", mainImage.getName(), requestMainFile);

            File hoodImage, bumperImage, interiorImage, frontSeatImage, backSeatImage, dashboardImage, headLampsImage, tailLightImage, backEngineImage;

            MultipartBody.Part hood = null, bumper = null, interior = null, frontSeat = null, backSeat = null, dashboard = null, headLamps = null, tailLights = null, backEngine = null;

            if (vehicleEntity.hoodsImage != null) {

                hoodImage = new File(vehicleEntity.hoodsImage);
                RequestBody requestHoodFile = RequestBody.create(MediaType.parse("multipart/form-data"), hoodImage);
                hood = MultipartBody.Part.createFormData("hoods", hoodImage.getName(), requestHoodFile);

            }

            if (vehicleEntity.bumperImage != null) {

                bumperImage = new File(vehicleEntity.bumperImage);
                RequestBody requestBumperFile = RequestBody.create(MediaType.parse("multipart/form-data"), bumperImage);
                bumper = MultipartBody.Part.createFormData("bumpers", mainImage.getName(), requestBumperFile);

            }

            if (vehicleEntity.interiorImage != null) {

                interiorImage = new File(vehicleEntity.interiorImage);
                RequestBody requestInteriorFile = RequestBody.create(MediaType.parse("multipart/form-data"), interiorImage);
                interior = MultipartBody.Part.createFormData("interiors", mainImage.getName(), requestInteriorFile);

            }

            if (vehicleEntity.frontSeatImage != null) {

                frontSeatImage = new File(vehicleEntity.frontSeatImage);
                RequestBody requestFrontSeatFile = RequestBody.create(MediaType.parse("multipart/form-data"), frontSeatImage);
                frontSeat = MultipartBody.Part.createFormData("front_seat", mainImage.getName(), requestFrontSeatFile);

            }

            if (vehicleEntity.backSeatImage != null) {

                backSeatImage = new File(vehicleEntity.backSeatImage);
                RequestBody requestBackSeatFile = RequestBody.create(MediaType.parse("multipart/form-data"), backSeatImage);
                backSeat = MultipartBody.Part.createFormData("back_seat", mainImage.getName(), requestBackSeatFile);

            }

            if (vehicleEntity.dashboardImage != null) {

                dashboardImage = new File(vehicleEntity.dashboardImage);
                RequestBody requestDashboardFile = RequestBody.create(MediaType.parse("multipart/form-data"), dashboardImage);
                dashboard = MultipartBody.Part.createFormData("dashboard", mainImage.getName(), requestDashboardFile);

            }

            if (vehicleEntity.headLampsImage != null) {

                headLampsImage = new File(vehicleEntity.headLampsImage);
                RequestBody requestHeadLampsFile = RequestBody.create(MediaType.parse("multipart/form-data"), headLampsImage);
                headLamps = MultipartBody.Part.createFormData("headlamps", mainImage.getName(), requestHeadLampsFile);

            }

            if (vehicleEntity.tailLightsImage != null) {

                tailLightImage = new File(vehicleEntity.tailLightsImage);
                RequestBody requestTailsLightFile = RequestBody.create(MediaType.parse("multipart/form-data"), tailLightImage);
                tailLights = MultipartBody.Part.createFormData("tail_light", mainImage.getName(), requestTailsLightFile);

            }

            if (vehicleEntity.backEngineImage != null) {

                backEngineImage = new File(vehicleEntity.backEngineImage);
                RequestBody requestBackEngineFile = RequestBody.create(MediaType.parse("multipart/form-data"), backEngineImage);
                backEngine = MultipartBody.Part.createFormData("tail_light", mainImage.getName(), requestBackEngineFile);

            }


            int userId = Integer.parseInt(sharedPreferences.getString(USER_ID, null));

            String vehicleName = vehicleEntity.vehicleName;

            int stockNumber = Integer.parseInt(vehicleEntity.stockNumber);

            Call<SuccessModel> call = apiInterface.uploadVehicle(

                    userId, vehicleName, stockNumber, main,
                    hood, bumper, interior, frontSeat, backSeat,
                    dashboard, headLamps, tailLights, backEngine

            );