我收到来自 Retrofit Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $ 的响应错误

2024-04-11

我看了几个答案,我遗漏了一些东西。还有没有办法在 Retrofit 处理之前查看数据?

这是代码

extends Activity implements Callback<List<MemberPOJO>> {

@Inject
MembersInterface memberInterfaceService;

@Override
public void onFailure(Exception ex) {

    setProgressBarIndeterminateVisibility(false);

    String retrofitError = "Error: " + ex.getMessage();

    Log.e("LoadActivity", retrofitError);
}

@Override
public void onSuccess(List<MemberPOJO> result) {

    ArrayList<String> strings = new ArrayList<String>(result.size());

    Log.e("LoadActivity", "MemberPOJO:" + result);

}

...

public void getMemberHostData() {
    MemberLoader loader = new MemberLoader(this, memberInterfaceService);

    RetrofitLoaderManager.init(getLoaderManager(), 0, loader, this);
}

static class MemberLoader extends RetrofitLoader<List<MemberPOJO>, MembersInterface> {

    public MemberLoader(Context context, MembersInterface service) {

        super(context, service);
    }



    RestAdapter.Builder builder= new RestAdapter.Builder()
            .setRequestInterceptor(new RequestInterceptor() {
                @Override
                public void intercept(RequestFacade request) {
                    request.addHeader("Accept", "application/json;versions=1");
                    request.addHeader("authorization",getAuthorization(getContext()));

                }
            });

    @Override
    public List<MemberPOJO> call(MembersInterface service) {

        return service.listOfMemebers();
    }
}

如果你有的话,你可以拉绳子StringConverter and 字符串类型输出 https://gist.github.com/NikolaDespotoski/18029c3926eacf1b7fc0。这将提供纯字符串并且不会反序列化任何内容。当然你可以尝试验证里面的JSON是否有效fromBody()方法,如果有效则继续反序列化(将其扩展到GsonConverter),否则只需获取Response

public class StringConverter implements Converter {

    @Override
    public Object fromBody(TypedInput arg0, Type arg1)
            throws ConversionException {

        return getStringFromInputStream(arg0.in());
    }

    @Override
    public TypedOutput toBody(Object arg0) {
        String string = (String) arg0;
        return new StringTypedOutput(string.getBytes(Charset.forName(HTTP.UTF_8)));
    }


    public static String getStringFromInputStream(InputStream is) {

    BufferedReader br = null;
    StringBuilder sb = new StringBuilder();

    String line;
    try {

        br = new BufferedReader(new InputStreamReader(is));
        while ((line = br.readLine()) != null) {
            sb.append(line);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        //close the stream if needed.
    }

    return sb.toString();

}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我收到来自 Retrofit Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $ 的响应错误 的相关文章

随机推荐

  • “混合声明和代码”警告,值得解决吗?

    我最近启用了 pedanticgcc 上的选项 现在我收到大约两三页的 ISO C90 禁止混合声明和代码 警告 我这个项目的目标是能够将其部署在任何主流系统带有 C 编译器 所以我意识到假设 C99 将在所有地方都受支持是不明智的 但是是
  • Macvim 默认不会加载特定的配色方案

    我遇到了类似的问题VIM 配色方案默认不加载 https stackoverflow com questions 2637929 vim color scheme not loading by default 除了我遇到了这里找到的 gen
  • jQuery getJSON 将结果保存到变量中[重复]

    这个问题在这里已经有答案了 我使用 getJSON 从我的网站请求 JSON 它工作得很好 但我需要将输出保存到另一个变量中 如下所示 var myjson getJSON http 127 0 0 1 8080 horizon updat
  • 如何在 Eclipse 中使用 JavaFX 2 SDK?

    我已经安装了 JavaFX 2 0 SDK 现在我想使用 Eclipse 制作一个 JavaFX 应用程序 但我该如何使用javafx Eclipse 中的类 The 官方 JavaFX Eclipse 插件 http docs oracl
  • C# 7.0 独立丢弃混淆

    我想更好地理解几个涉及 C 7 0 丢弃功能的使用的示例 他们都利用所谓的单独丢弃 https learn microsoft com en us dotnet csharp discards a standalone discard 这是
  • CQRS 对于我的域是否正确?

    我正在对一个档案进行建模 它是视频点播系统的一部分 将存档想象成 Windows 资源管理器 其中多个用户可以创建文件夹 上传视频 重组文件夹等 有业务规则 权限 确定是否允许用户执行任务 即重命名文件夹 移动文件夹 查看文件夹等 我已将每
  • 如何减少 Hybris 服务器的启动时间?

    我正在研究一个Hybris项目这是非常耗时的等待 350 550 秒对于单个Hybris服务器启动 即使只是代码中的一点修改 错误输入 是否有可能reduce this time仅运行我修改过的扩展或任何其他方式 那将是一件很棒的事情 在
  • DirectX Release 构建可以通过 VS2010 运行,但不能运行 exe

    我已经通过 Google 访问 Stack Overflow 几年了 但到目前为止还没有询问 回答任何问题 所以就到这里吧 基本上 我有一个在 DirectX 11 中设置绘图模型和地形的 3D 渲染框架 一切正常 通过 Visual St
  • 当前上下文中不存在名称“isPost”(带有 Razor 的 ASP.NET)

    我正在尝试遵循有关 Razor 入门的 Microsoft 文档 https learn microsoft com en us aspnet web pages overview getting started introducing r
  • 如何使用VBA在Excel中保持第一个单元格始终处于活动状态

    如何在打开 Excel 工作表时保持第一个单元格始终处于活动状态 任何人都可以指导我如何做到这一点 这是我的 代码 Private Sub Send Click Dim strURL As String strURL http xxxxxx
  • UIFont - 如何获取系统细字体

    UIFont有方法获取常规字体 systemFontOfSize 或粗体 boldSystemFontOfSize 但是如何通过情节提要获得可用的 瘦系统字体 将 系统精简 传递给UIFont构造函数不起作用 该构造函数仅适用于非系统字体
  • Django 开发将 HttpResponses 记录到开发服务器

    我正在使用 Django 创建一个 API 每个视图都以 JSON 形式响应 我想将每个 HttpResponse JSON 记录到开发服务器输出 到目前为止我已经添加了一个处理程序 console level DEBUG class lo
  • 在 Python 中列出所有 Google Drive 文件和文件夹并保存 ID

    我正在尝试编写一个程序来将文件夹和所有内容 包括子文件夹等 复制到另一个文件夹 我可能过于复杂化了 但我觉得第一步是获取与它们关联的所有文件名和 ID 并将它们保存到两个列表中 一个用于文件 一个用于文件夹 我无法让我的程序递归地遍历所有子
  • 无法验证 AzureAD 本机客户端应用程序

    我已经注册了一个 AzureAD 应用程序 它是公共客户端 本机客户端 我在门户中使用 Azure 生成的标准代码 重要的是 static App clientApp PublicClientApplicationBuilder Creat
  • 在Java中,我们可以将一个类分成多个文件吗

    是否有可能使用Java将一个类划分为多个物理文件 不 整个类必须位于 Java 的单个文件中 如果您正在考虑 C 的 部分类型 功能 那么 Java 中没有类似的功能 如果您没有想到 C 请忽略此
  • 带有 rpi 主站和从站的 Profibus [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我的任务是使用 Rpi 和 Rs 485 转换器构建 profibus 主站和从站网络 一个 Rpi 将成为主设备 另一个将成为从设备
  • 无法加载 RSA 公钥

    我正在尝试读取如下所示的 RSA 公钥 但在第 6 行出现异常 java security spec InvalidKeySpecException java security InvalidKeyException IOException
  • 将浮点数转换为整数

    我试图定义 square Integer gt Integer square round 2 我得到
  • XDebug:Windows + Docker + PHPStorm

    我的操作系统是 Windows 10 我通过 boot2docker 映像运行 Docker 我使用的IDE是PHPStorm 我想做的是使用 XDebug 进行调试 但我没有让它运行 我搜索了网络并尝试了我找到的示例 但没有任何帮助 有相
  • 我收到来自 Retrofit Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $ 的响应错误

    我看了几个答案 我遗漏了一些东西 还有没有办法在 Retrofit 处理之前查看数据 这是代码 extends Activity implements Callback