我試圖做一個非常基本的Retrofit/RxJava設置。所以我試圖消費這個API:http://jsonplaceholder.typicode.com/posts無法創建通話適配器rx.Observable <POJO>
我的基本設置如下;
我的改裝服務:
public interface SimpleTestService {
String endpoint = "jsonplaceholder.typicode.com";
@GET("/posts")
Observable<Post> getPosts();
}
創建服務:
public class TestAdapter {
public static SimpleTestService createService() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://wwww.jsonplaceholder.typicode.com")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
SimpleTestService service = retrofit.create(SimpleTestService.class);
return service;
}
}
使我的電話:
SimpleTestService testService = TestAdapter.createService();
testService.getPosts()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<Post>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Post post) {
String text = testText.getText().toString();
text += post.getBody();
testText.setText(text);
}
});
當我嘗試這樣做,我得到異常:
java.lang.IllegalArgumentException: Unable to create call adapter for rx.Observable<Post>
這對我來說很奇怪,因爲我明確地添加了RX呼叫適配器。我也包括所有這些東西在我的build.gradle
任何提示?
謝謝!
你能請張貼安置自己的POJO創建服務? –
POJO是一個包含3個字段(所有字符串)的基本類,一個構造函數和所有變量的getter/setter。而已。 POJO匹配API輸出的JSON。我是否需要添加特定於POJO的內容來完成此項工作? @MuraliPrajapati –
一切看起來都很好。你能告訴我引起異常的線嗎? –