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

Retrofit posting through @Field makes value as an array

使用 Django web API 连接移动客户端,我使用 Retrofit @Field 将值 post 设置为 API,当我使用 post 测试时它完美运行伙计,但在移动客户端中使用 Retrofit POST posting 参数做了同样的事情 @Field

    @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 但没有成功,当 post 来自 post 时,是否有任何理由形成数组值,仅供参考男人需要如下

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

我遇到了类似的问题,当 @Field@Body 替换时得到了纠正创建新数据 class命名为 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)