首页 > 解决方案 > 为什么我的后期改造请求不起作用?

问题描述

我有一个应该上传以下参数的应用程序

在此处输入图像描述

在此处输入图像描述

在这里我有我的代码

 @POST("task")
Call<ResponsetTask> API_Task(@Header("Authorization") String key, @Body RequestBody body);

[ 在此处输入图像描述3

 private void Analizar()  {
    File file=new File(path);



    RequestBody requestBody =RequestBody.create(MediaType.parse("image/jpg"),file);
    MultipartBody.Builder builder = new MultipartBody.Builder();
    builder.setType(MultipartBody.FORM);

    builder.addFormDataPart("message", Constantes.MESSAGE);
    builder.addFormDataPart("filecomment", Constantes.FILECOMMENT);
    builder.addFormDataPart("api_token", Constantes.api_token);
    builder.addFormDataPart("user_id", Integer.toString(Constantes.id));
    builder.addFormDataPart("image","image.jpg",requestBody);

    MultipartBody body = builder.build();

    Call<ResponsetTask>call=conexion2.API_Task(Constantes.AUTH,body);
    call.enqueue(new Callback<ResponsetTask>() {
        @Override
        public void onResponse(Call<ResponsetTask> call, Response<ResponsetTask> response) {
            if(response.isSuccessful()){
                Constantes.api_task=response.body().getTaskId();
            }
        }

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

        }
    });


}

在此处输入图像描述

问题是该帖子不起作用并且没有告诉我为什么我的代码中有一个断点 BodyRequest 是构建的,但是当涉及到调用时它只是跳到最后,也就是说 onResponse () 和 onFailure () 跳过代码似乎工作,应用程序没有挂起或给出异常

我感谢任何帮助的朋友

标签: javaandroidretrofit

解决方案


这个问题是你试图通过多部分传递数据,这是一个简单的修复添加这个库

implementation "com.squareup.retrofit2:converter-scalars:$retrofit_version"

和这个转换器工厂

.addConverterFactory(ScalarsConverterFactory.create())在您的改造构建器中。示例代码如下

    retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(ScalarsConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create())
            .client(httpClient.build())
            .build();

推荐阅读