首页 > 解决方案 > 改造不同的调用和响应 json 体

问题描述

如何使用不同类型的调用和响应主体对 PUT 进行改造?我有错误的限制。类型必须相同<T> and <T>。响应体可以包含 int 值,但 call 不应该,因为当我用 int 值初始化 CallBody 对象时,它已经包含 n1=0,并将此参数发送到服务器。

@PUT("/api/test")
Call<CallBody> test1(@Body CallBody params_body);

public class CallBody {
    public String id;
}

public class ResponceBody {
    public String s1;
    public int n1;
}

public void Test(String id) {
        CallBody params_body = new CallBody();
        params_body.id = id;

        Call<CallBody> call1 = apiInterface.test1(params_body);
        call1.enqueue(new Callback<CallBody>() {
            @Override
            public void onResponse(Call<CallBody> call, Response<ResponceBody> response) {
                ResponceBody response = response.body();
            }

            @Override
            public void onFailure(Call<CallBody> call, Throwable t) {
                call.cancel();
            }
        });
    }

标签: javaandroidretrofit2

解决方案


尝试,

public class ResponceBody {
    public String s1;
    public Integer n1;
}

推荐阅读