gpt4 book ai didi

android - 通过@Field 进行改造发布使值成为数组

转载 作者:行者123 更新时间:2023-11-29 00:53:18 27 4
gpt4 key购买 nike

使用 Django web API 连接移动客户端,我使用 Retrofit @Field 将值发布到 API,当我使用 postman 测试时它工作得很好,但在移动客户端中使用 Retrofit POST 发布参数做了同样的事情@字段

    @FormUrlEncoded
@POST(Urls.API_REGISTER)
fun register(
@Header("Content-Type") contentType: String,
@Field("username") userName: String,
@Field("password") password: String,
@Field("email") email: String
): Observable<JsonElement>

并将参数的值作为数组元素获取,如下所示

{'username': ['kabildev'], 'password': ['Kabil@123'], 'email': ['kapil@outlook.com']}

即使我曾尝试将 Content-Type 设置为 application/json 但没有成功,是否有任何原因为什么它会形成一个数组值,仅供引用,当从 postman 发布时它需要如下

{'username': 'kabildev', 'password': 'Kabil@123', 'email': 'kapil@outlook.com'}

最佳答案

@Field 被替换为 @Body 创建一个名为 User 的新数据类并使请求如下

@POST(Urls.API_REGISTER)
fun register(
@Body user: User
): Observable<JsonElement>

另外别忘了去掉@FormUrlEncoded,让User模型如下

data class User(@SerializedName("username") val userName: String,
@SerializedName("password") val password: String,
@SerializedName("email") val email: String)

关于android - 通过@Field 进行改造发布使值成为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57447117/

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