Android 为什么可以';我上传一个图像和数据与2?

Android 为什么可以';我上传一个图像和数据与2?,android,retrofit2,Android,Retrofit2,关于,我必须上传这些数据 我有这个密码 客户创造 public BeeMappingClient(String url){ retrofit= new Retrofit.Builder() .baseUrl(url) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.

关于,我必须上传这些数据

我有这个密码

客户创造

public  BeeMappingClient(String url){

    retrofit= new  Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(ScalarsConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    conexion=retrofit.create(Conexion.class);
}
接口

@Multipart
@POST("task")
Call<ResponsetTask> API_Task(@Header("Authorization") String key,
                             @Part MultipartBody.Part multipartImage,
                             @Part("message") RequestBody message ,
                             @Part("filecomment") RequestBody filecomment,
                             @Part("api_token") RequestBody api_token,
                             @Part("user_id") RequestBody user_id);
@Multipart
@职位(“任务”)
调用API_任务(@Header(“Authorization”)字符串键,
@部分多部分主体。部分多部分图像,
@部分(“消息”)请求主体消息,
@部分(“文件注释”)请求主体文件注释,
@部分(“api_令牌”)请求主体api_令牌,
@部分(“用户id”)请求主体(用户id);
打电话

File file=new File(path);

    MultipartBody.Part[] multipartImageList = new MultipartBody.Part[1];
    RequestBody surveyBody = RequestBody.create(MediaType.parse("image/*"), file);
    multipartImageList[0] = MultipartBody.Part.createFormData("image", "image.jpg", surveyBody);
    RequestBody message = RequestBody.create(MediaType.parse("message"), Constantes.MESSAGE);
    RequestBody filecomment = RequestBody.create(MediaType.parse("filecomment"), Constantes.FILECOMMENT);
    RequestBody api_token = RequestBody.create(MediaType.parse("api_token"),Constantes.api_token);
    RequestBody user_id = RequestBody.create(MediaType.parse("user_id"), Integer.toString(Constantes.id));

    Call<ResponsetTask> call = conexion.API_Task(Constantes.AUTH,multipartImageList[0],message,filecomment,api_token,user_id);
    call.enqueue(new Callback<ResponsetTask>() {
        @Override
        public void onResponse(Call<ResponsetTask> call, Response<ResponsetTask> response) {
            Constantes.api_task=response.body().getTaskId();
        }

        @Override
        public void onFailure(Call<ResponsetTask> call, Throwable t) {

        }
    });
File File=新文件(路径);
MultipartBody.Part[]multipartImageList=新的MultipartBody.Part[1];
RequestBody surveyBody=RequestBody.create(MediaType.parse(“image/*”),文件);
multipartImageList[0]=MultipartBody.Part.createFormData(“image”、“image.jpg”、surveyBody);
RequestBody message=RequestBody.create(MediaType.parse(“message”),constants.message);
RequestBody filecomment=RequestBody.create(MediaType.parse(“filecomment”),constants.filecomment);
RequestBody api_token=RequestBody.create(MediaType.parse(“api_token”)、constants.api_token);
RequestBody user_id=RequestBody.create(MediaType.parse(“user_id”)、Integer.toString(constants.id));
Call Call=conexion.API_任务(constants.AUTH,multipartImageList[0],消息,filecomment,API_令牌,用户id);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
Constantes.api_task=response.body().getTaskId();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
问题是它什么也不做,如果我进行调试,在它到达调用之前,一切似乎都进行得很顺利。enqueu。。。在那里,我应该输入OnResques或OnFailure,但它不会像它不存在一样直接进入方法的末尾。 我该怎么办?这是上传数据的最佳方法?。 我提前感谢您对我的任何帮助或指导

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

将“image/*”替换为“multipart/form data”

尝试此操作-用于多部分请求

接口内

呼叫-

Call<ResponseBody> call = service.callApi(body,message);
Call Call=service.callApi(主体,消息);
    File file = new File(path);        
    RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
    MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile);
    RequestBody message = RequestBody.create(MediaType.parse("text/plain"), Constantes.MESSAGE);
Call<ResponseBody> call = service.callApi(body,message);