gpt4 book ai didi

android - Retrofit 2.0-Beta1 从 Observable 读取响应

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:19 25 4
gpt4 key购买 nike

我正在尝试读取请求成功案例中的 httpstatus 代码和正文。所以我创建了下面的代码来测试但是我没能调用onNext,我尝试使用okhttp(com.squareup.okhttp.Response)和改造 Response (retrofit.Response) 类,但我无法让它工作。

有人可以帮我阅读这里的正文和 httpstatus 代码吗?我想继续使用 Observables。提前致谢。

package com.app.rest;

import com.squareup.okhttp.Response;

import retrofit.GsonConverterFactory;
import retrofit.Retrofit;
import retrofit.RxJavaCallAdapterFactory;
import retrofit.http.GET;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

public class TestApiClient {
public interface Test {
@GET("/posts")
Observable<Response> getPosts();
}

public TestApiClient() {
new Retrofit.Builder()
.baseUrl("http://jsonplaceholder.typicode.com")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build().create(Test.class).getPosts().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Response>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {
e.toString();
}

@Override
public void onNext(Response response) {
response.toString();
}
});
}
}

最佳答案

我得到了答案。

import com.squareup.okhttp.ResponseBody;
import retrofit.Response;

...

public Observable<Response<ResponseBody>> xxx(){}
...

Playlist playlist = Playlist.parse(((ResponseBody)response.body()).byteStream());

实际上,response.body() 是一个对象,您可以将其转换为其他类型。在本例中,它是 ResponseBody。

关于android - Retrofit 2.0-Beta1 从 Observable 读取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com