草庐IT

android - 无法在 Android Retrofit2 converter-simplexml 库中为我的类创建转换器

coder 2023-11-19 原文

我使用 Retrofit2 converter-simplexml 库,当我使用 converter-gson 时代码运行成功,但是当我添加 simplexmlConverter 时,我得到一个异常:

java.lang.IllegalArgumentException: Unable to create converter for java.util.List<com.rengwuxian.rxjavasamples.model.ZhuangbiImage>
Caused by: java.lang.IllegalArgumentException: Could not locate ResponseBody converter for java.util.List<com.rengwuxian.rxjavasamples.model.ZhuangbiImage>.

这是我尝试执行复古 http 请求的地方:

private void search(String key) {
    subscription = getZhuangbiApi()
            .search(key)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(observer);
}

public static ZhuangbiApi getZhuangbiApi() {
    if (zhuangbiApi == null) {
        Retrofit retrofit = new Retrofit.Builder()
                .client(okHttpClient)
                .baseUrl(baseUrl)
                .addConverterFactory(simpleXmlConverterFactory)
                .addCallAdapterFactory(rxJavaCallAdapterFactory)
                .build();
        zhuangbiApi = retrofit.create(ZhuangbiApi.class);

    }
    return zhuangbiApi;
}

我的界面变成了我的 API

public interface ZhuangbiApi {

@GET("merchant/list")
Observable<List<ZhuangbiImage>> search(@Query("app_code") String appCode);
}

和 ZhuangbiImage 类

@Root(name = "item")
public class ZhuangbiImage {

@Element(name = "title")
public String title;

@Element(name = "merchant_id")
public String merchantId;
}

最佳答案

XML 只能反序列化为具体类型,不能像 JSON 那样反序列化为类型列表。在这种情况下,主体类型应表示 <rss>标记及其子项而不是 List<ZhuangbiImage> .

来自官方 retrofit 团队的更多详细信息Retrofit, XML and SimpleXmlConverterFactory problem

关于android - 无法在 Android Retrofit2 converter-simplexml 库中为我的类创建转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37856824/

有关android - 无法在 Android Retrofit2 converter-simplexml 库中为我的类创建转换器的更多相关文章

随机推荐