gpt4 book ai didi

java - 反序列化来自服务器的错误响应时的 NPE

转载 作者:行者123 更新时间:2023-11-30 01:16:58 31 4
gpt4 key购买 nike

我从服务器收到响应,我使用 Gson 将其反序列化为相应的对象。

问题是有时我会收到错误响应(当然不是我期望的对象类型),这会导致 NullPointerException。我该如何处理这种情况?

我的代码是:

        Response pollsResponse = okHttpClient.newCall(pollsRequest).execute();

String pollsResponseString = pollsResponse.body().string();

// Gson Type for List of Poll.class oObjects
Type listType = new TypeToken<ArrayList<Poll>>() { }.getType();
pollsList = gson.fromJson(pollsResponseString, listType);

当出现错误时,最后一行代码给出 NPE。我如何检查项目是否不是 ArrayList<Poll> 的类型所以我不会反序列化它?

编辑:我不明白为什么我的问题与链接的问题相似?我知道什么是 NPE。我不知道如何处理我不希望从会导致 NPE 的网络调用中得到的结果。如果我错了,请纠正我。

最佳答案

在尝试解析主体之前,您需要检查响应是否有效。像这样:

if (!pollsResponse.isSuccessful()) 
throw new IOException("Unexpected reply " + pollsResponse);

在此处查看食谱:https://github.com/square/okhttp/wiki/Recipes

顺便说一句:您的问题是主题“反序列化时的 NPE...”与问题并不相关,更好的主题可能是“我如何查找 OKHttp 响应错误?”

关于java - 反序列化来自服务器的错误响应时的 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704413/

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