提问者:小点点

如何在没有任何pojo或数据类或模型类的情况下使用改造


我正在开发一个应用程序,我想使用改造,但API的响应非常大,不能在任何数据类或POJO类中转换,而且响应是动态的,它会随着用户操作的备份而增加,所以我想问这个很长一段时间,有什么方法可以使用改造而不需要响应数据类或POJO类,否则我必须回到使用REST api的基本Http方式。

如果有人已经实现或以前使用过,请给一些想法如何实现这一点,将是一个很大的帮助。事先感谢。


共2个答案

匿名用户

来自改造文档:

[1]Retrofit是将API接口转换为可调用对象的类。

[2]Retrofit将您的HTTPAPI变成Java界面。

Retrofit的唯一目的是将API调用抽象为Java接口。它旨在与接口和POJO一起使用,它是这样设计的。如果你不想使用POJO,你可以使用OkHttp,它实际上是Retrofit在幕后使用的。只有当你需要将HTTP调用抽象为Java对象时,才应该使用Retrofit。

匿名用户

您始终可以通过@Body注释发送字符串。

public interface YourService{
    @POST("some/extension")
    Call<Object> makeCall(@Body String body);
}

您可以像这样访问响应的主体:

service.makeCall(yourCustomString).enqueue(new Callback<String>() {
    @Override
    public void onResponse(Response<String> response) {
        String content = response.body(); // this gives the response body as a string
    }

    @Override
    public void onFailure(Throwable t) {...}
});

我仍然认为使用JSON转换器是最好的选择。根据JSON结构,您可能只需要在包装响应/请求类中嵌套很多类。大小不同并不重要,可以使用列表和可选属性轻松创建。你的响应有多大?例如,Moshi没有大小限制。