gpt4 book ai didi

java - 使用 Retrofit 处理不一致的 API 响应

转载 作者:行者123 更新时间:2023-12-05 00:04:44 27 4
gpt4 key购买 nike

我在新项目中遇到问题。我正在连接到可以根据某些服务器逻辑在一次响应中响应两种不同数据类型的 API。我在 Android 上使用 Retrofit,我想知道在改造对象解析之前是否有一些“简单”的方法来处理这些情况,例如。某种解析器/序列化器会检查什么类型具有特定的 JSON 字段?我不知道。

以下是可能的回应:

错误响应:

{
"ReturnCode": "error",
"ReturnCodeNumber": 444,
"ReturnMessage": "Invalid Request",
"ReturnData": ""
}

数据响应:

{
"ReturnCode": "ok",
"ReturnCodeNumber": 0,
"ReturnMessage": "success",
"ReturnData": [
{

}
]
}

改造 API 请求:

@FormUrlEncoded
@POST("url")
Observable<ApiResponse<List<Data>>> requestData()

API 响应类公开了上述响应的字段,并为returnData 参数化了T。

那么是否有可能以某种方式将其包装在某个序列化程序类中?

最佳答案

您将必须编写自定义反序列化器或注册一个类型适配器,如本文所述 -

https://sites.google.com/site/gson/gson-user-guide#TOC-Custom-Serialization-and-Deserialization

关于java - 使用 Retrofit 处理不一致的 API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62425183/

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