首页 > 解决方案 > CharArray as Field 修改请求数据输入

问题描述

背景 :

代码片段:

@FormUrlEncoded
@POST("enroll/device")
fun token(@Field("username") username: String, @Field("password") password: CharArray): Single<Token>

private val retrofit: Retrofit by lazy {
        val retrofitBuilder = Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(JacksonConverterFactory.create(objectMapper))
                .addConverterFactory(ScalarsConverterFactory.create())
                .addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create())
                .client(okHttpClient)

        retrofitBuilder.build()
    }

日志

登录名=merchant1&password=1&password=2&password=3&password=4&password=o&password=4&password=A&password=%26

标签: androidjsonkotlinjacksonretrofit2

解决方案


这对我有用,我从更改FormUrlEncoded@Body

@POST("enroll/device")
fun token(@Body credentials: Credentials): Single<Token>

我将数据类定义如下:

data class Credentials(@JsonProperty("login") var login: String,
                          @JsonProperty("password") var password: CharArray)

推荐阅读