我正在使用Rxjava进行改装,以获得API的响应,因为您可以看到我使用的方法,我看不到响应中会出现什么,当然我不需要,因为我提供了GsonConverter进行改装,但出于某些调试原因,我需要看到来自API的响应。我怎样才能做到这一点,我需要添加什么代码。
public interface ProductApiService
{
String END_POINT = "http://beta.site.com/index.php/restmob/";
@GET(Url.URL_PRODUCT_API)
Observable<Product> getProducts(@Query("some_id") String cid);
class Creator
{
public static ProductApiService getProductAPIService() {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ProductApiService.END_POINT)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
return retrofit.create(ProductApiService.class);
}
}
}
Daniel Lew的方法很快,包含的锅炉板代码最少。然而,这可能会迫使您重构您的网络逻辑。由于您提到出于调试目的需要这样做,也许将配置好的OkHttpClient与拦截器一起使用是一种干扰较小的策略。
OkHttpClient httpClient = new OkHttpClient.Builder()
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request req = chain.request();
Response resp = chain.proceed(req);
// ... do something with response
return resp;
}
})
.build();
Retrofit retrofit = new Retrofit.Builder()
.client(httpClient)
.baseUrl(ProductApiService.END_POINT)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
您只能从Retrofit 2开始执行此操作:将返回类型更改为包含响应
:
@GET(Url.URL_PRODUCT_API)
Observable<Response<Product>> getProducts(/* ...etc... */);
您也可以使用可观察
我用改型/rxJava调用我的API,得到了一个可观察的响应,就像一个BreedDog列表 ...你可以看到我的代码: 这是可行的,但是现在,对于列表中的每一项,我都需要调用API来获取URL图像并更新列表。。但我不知道怎么。。。我试着在Observable中更改我的单个响应,并使用了flatMap或flatMapIterate之类的运算符。。等等,但每次我都会在对象上出错。。没有一个例子。。。等
有没有一种方法来捕获400到599超文本传输协议状态在onFail()方法通过使用改造2.0?每当其他api返回400,401等,然后改型像200响应,并在on成功()上处理它。我怎样才能实现呢?
HI我只是新来的改造服务,并遵循本教程https://www.simplifiedcoding.net/retrofit-android-tutorial-to-get-json-from-server/它工作得很好,想创建我自己的,所以我使用了一个新的json网络http://api.androidhive.info/contacts/,其中包含 我实现了自己的接口ContactAPI。Java
改装版本:2.1.0 OkHttp版本:3.4.1 在我的Retromet实现的方法中,我有以下逻辑: 这里的是我自己的类型(与OkHttp的无关),它包装了一个泛型,其中是一个接口,它公开了一个方法,用于确认反序列化的响应满足给定的约束。 如果我收到一个表面上成功的响应(HTTP代码2XX、非空响应主体等)。),但其反序列化的主体没有通过此验证步骤(即返回false),我想呈现一个对话框,其消息
我正在建立一个新的android项目并使用改版,我的改版功能在模拟器(NOX)和邮递员中正常工作,但是当我尝试在移动设备中构建我的应用程序时,改版总是陷入失败,有人能给我解决方案吗?我的API发布在公共主机上, 这就是我所说的改装 我的回应 这是我的邮差回复
API接口 在我的MVP节目中 这些是我的改造和rxjava代码,我应该发布一封电子邮件和密码来注册用户。服务器应该在成功时返回一个字符串,在失败时也返回一个字符串。 我添加了gson setLenient代码部分,因为它给了我错误,如果我没有它。添加此后,我得到了错误,我不知道如何解决它。这是因为来自服务器的返回响应是一个字符串吗? 提前谢谢。