gpt4 book ai didi

android - 有什么方法可以传递@Body 的参数而不是多个@Field

转载 作者:行者123 更新时间:2023-12-02 12:52:46 26 4
gpt4 key购买 nike

我有一个后端服务器,想要使用正文参数进行 Http POST 调用。

我创建了一个 Post 请求,其中 @Header 带有 api key ,@Body 带有用户信息。但是当我点击 api 时,它会显示这样的响应“数据”:[],它应该像“数据”:{}。但是如果我发送多个@Field 作为参数,那就没问题了。有没有使用@Body 而不是多个@Field 的过程
SignInInfo.kt

data class SignInInfo(
@SerializedName("name") val name: String,
@SerializedName("email") val email: String,
@SerializedName("user_type") val userType: String,
@SerializedName("phone") val phone: String,
@SerializedName("password") val password: String
)
api.kt
@POST(Constants.API_USER_REGISTRATION)
fun registerUser(
@Body signInInfo: SignInInfo
): Call<RegistrationResponse>
api.kt
@FormUrlEncoded
@POST(Constants.API_USER_REGISTRATION)
fun registerUser(
@Field("name") name: String,
@Field("email") email: String,
@Field("user_type") user_type: String,
@Field("phone") phone: String,
@Field("password") password: String
): Call<RegistrationResponse>

我在使用 @Field 参数时得到了这个预期的答案
{
"status": 1,
"data": {
"id": 135386,
"user_id": 1567057386,
"token": "geYs2rO6wjtO653I9OVhJWTFwYxAvnYnLGG7wm7dfa"
},
"msg": "Welcome Aomi"
}

我在使用@Body 参数时得到了这个意想不到的答案
{
"status": 2,
"data": [],
"msg": "Failed"
}

最佳答案

您的 Body 数据类应如下所示

data class Body(
@SerializedName("status")
val status: Int? = 0,
@SerializedName("data")
val `data`: Data? = Data(),
@SerializedName("msg")
val msg: String? = ""
)

data class Data(
@SerializedName("id")
val id: Int? = 0,
@SerializedName("user_id")
val userId: Int? = 0,
@SerializedName("token")
val token: String? = ""
)

如果你想得到这种 json
{
"status": 1,
"data": {
"id": 135386,
"user_id": 1567057386,
"token": "geYs2rO6wjtO653I9OVhJWTFwYxAvnYnLGG7wm7dfa"
},
"msg": "Welcome Aomi"

和使用
@POST(Constants.API_USER_REGISTRATION)
fun registerUser(
@Body signInInfo: Body
): Call<RegistrationResponse>

关于android - 有什么方法可以传递@Body 的参数而不是多个@Field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57768830/

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