当前位置: 首页 > 知识库问答 >
问题:

无法为java.util.List改型2.0.0-beta2创建转换器

蔚琦
2023-03-14

这是因为这行代码:

Call<List<Store>> call = subpriseAPI.listStores(response);

所以我试着用这行代码看看它是什么类型:

System.out.println(subpriseAPI.listStores(response).getClass().toString());

但是我得到了同样的错误,所以它不让我知道它是什么类型。下面你可以看到我的代码。

public class StoreService {

    public static final String BASE_URL = "http://getairport.com/subprise/";
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .build();

    SubpriseAPI subpriseAPI = retrofit.create(SubpriseAPI.class);
    String response = "";

    public List<Store> getSubprises() {

        Call<List<Store>> call = subpriseAPI.listStores(response);

        try {
            List<Store> listStores = call.execute().body();

            System.out.println("liststore "+ listStores.iterator().next());
            return listStores;
        } catch (IOException e) {
            // handle errors
        }
        return null;
    }
}
public interface SubpriseAPI {
    @GET("api/locations/get")
    Call<List<Store>> listStores(@Path("store") String store);
}
public class Store {
    String name;
}

共有1个答案

江宏伟
2023-03-14

在2+版本中,您需要通知转换器

变换器

默认情况下,Retrofit只能将HTTP主体反序列化为OKHTTP的ResponseBody类型,并且只能接受@Body的RequestBody类型。

// Square libs, consume Rest API
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
String baseUrl = "" ;
Retrofit client = new Retrofit.Builder()
    .baseUrl(baseUrl)
    .addConverterFactory(GsonConverterFactory.create())
    .build();
 类似资料:
  • 我在使用ActiveAndroid对API调用和数据库进行修改。在Pre6.0的Android设备上,一个应用程序可以很好地工作。无法确定根本原因。 改装2 Beta-4。Android6。无法创建转换器 我不明白为什么要使用gson或gsonbuilder? 感谢任何帮助。

  • 但每次我都收到异常:创建@body转换器 我怎么送?或者其他我能做到的想法。您甚至可以向我提供包含json的简单参数。这对我很合适

  • 最后是宠物类,它应该是reponse:

  • 我在MoshiConverterFactory和restfit上遇到了一个问题--我不能将POST JSON请求发送到RestAPI,因为它总是导致错误。我可以用Multipart成功地做到这一点,但API不支持它,所以这是不可能的... 我已经尝试做了什么:在我的AuthData类的参数上添加注释(错误仍然相同),传递多部分和表单URL编码的数据(API不支持)。有人看到我做错了什么吗?我也没有

  • 我在我的应用程序和Gson转换器中使用了改型。我想使用数据库时,没有互联网连接。我决定用糖兽。但我得到一个。 java.lang.IllegalArgumentException:无法为类创建转换器

  • 我每次都会收到这个错误:预期的begin_数组,但它是begin_对象。我不知道我是否需要添加反序列化程序或warrper类来进行改造,但我不知道如何以简单的方式来满足我所有项目的api json响应,下面是我的改造代码: - 我的Json: 我的源代码