android - 当 JsonObject 中收到响应时,Retrofit 会调用 onError block

标签 android retrofit2

我需要将 JsonArray 发送到服务,并接收 JsonObject 作为返回。

我使用了以下代码。

 @POST
    Call<JsonArray> networkUtilityJsonArrayPostCall(

            @Url String url,
            @Body JsonArray jsonArray);

然后我使用以下代码调用它。

 callJsonArray = api.networkUtilityJsonArrayPostCall(URL, jsonArray)

它收到响应代码 200,但不执行 onResponse block ,因为它期望 JsonArray 响应。

   callJsonArray.enqueue(new Callback<JsonArray>() {
                @Override
                public void onResponse(Call<JsonArray> call, Response<JsonArray> response) {

最佳答案

使用

@POST
Call<JSONObject> networkUtilityJsonArrayPostCall(
        @Url String url,
        @Body JsonArray jsonArray);

而不是下面的方法

@POST
Call<JsonArray> networkUtilityJsonArrayPostCall(
        @Url String url,
        @Body JsonArray jsonArray);

并替换各自继承的方法

关于android - 当 JsonObject 中收到响应时,Retrofit 会调用 onError block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55824887/

相关文章:

android - Retrofit2 和 Kotlin

android - 使用 Retrofit 的简单登录表单

android - 带有图像的 Xamarin ListView 滚动不流畅

android - 从android数据库中只获取一条记录

java - Git:重构文件名后无法清理工作副本

android - 如何在 xamarin CrossPlatform 应用程序中使用 Web Api

android - Espresso onData 执行点击多个项目

android - 改造。 java.net.协议(protocol)异常 : expected * bytes but received *

android - 如何捕获没有互联网异常错误?

android - 如何使用 RxJava 2 + Retrofit 2 进行 POST?