【发布时间】:2016-06-16 10:40: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;
}
【问题讨论】:
-
你说“使用 gson 时代码运行良好”是什么意思?使用 gson 转换器时是否成功响应,而使用简单 xml 转换器时响应不成功?
-
重新检查您的依赖关系。你添加了这一行 `dependencies { // Retrofit XML converter (Simple) compile 'com.squareup.retrofit2:converter-simplexml:2.1.0' }'
-
你能分享你的 gradle 文件吗?以及您从 Web 服务获得的示例响应
-
你是在用 call
- > 而不是 Observable
- > 进行测试
-
在你的 Api 中试试这个 .addConverterFactory(SimpleXmlConverterFactory.create())
标签: android retrofit simple-framework