模型类响应问题



我有一个Model类

data class OtpVerifyModel(
val result: Int? = null,
val msg: String? = null,
val data: Datas? = null)

在响应成功阶段,结果等于1,我们在数据中获得Object,其中如果结果为-1。我们在数据部分得到字符串。我使用data类的数据,但应用程序崩溃的情况下,数据是一个字符串。如何在不同情况下处理同一变量中的两种不同类型的数据?这是我的改造方法

@FormUrlEncoded
@POST("Api/login")
suspend fun verifyOtp(
@Query("height") height: String,
@Query("width") width: String,
@Field("key") key: String,
@Field("type") type: String,
@Field("phone") phone: String,
@Field("email") email: String,
@Field("otp") otp: String,
@Field("country_code") country_code: String,
@Field("country_flag") country_flag: String
): Response<OtpVerifyModel>

您应该有一个基本的API响应,使用泛型类,将不同数据类型的类型作为T,如下所示:

data class ApiResponse<T>(
val data: T?,
val result: Int? = null,
val msg: String? = null,
)

那么你可以有一个成功状态的类:

data class verifyOtp(
val result: String?,
...
) 

并将这个类传递给ApiResponse:

@FormUrlEncoded
@POST("Api/login")
suspend fun verifyOtp(
@Query("height") height: String,
@Query("width") width: String,
@Field("key") key: String,
@Field("type") type: String,
@Field("phone") phone: String,
@Field("email") email: String,
@Field("otp") otp: String,
@Field("country_code") country_code: String,
@Field("country_flag") country_flag: String
): Response<ApiResponse<verifyOtp>>

这样,当结果成功时,您的数据将是verifyOtp。在出现错误的情况下,根据您实现存储库类的方式,您可以解析响应。注意,如果出现错误,API应该返回一个不同于200的状态码,您可以在存储库中解析。

相关内容

  • 没有找到相关文章