android - CharArray as Field 修改请求数据输入
问题描述
背景 :
- 改造版本:2.5.0
- RxJava 版本:2.2.0
代码片段:
@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
解决方案
这对我有用,我从更改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)
推荐阅读
- azure-cosmosdb - 未强制执行具有 ResourcePartitionKey 的 CosmosDB UserPermission
- tensorflow - 将 NumPy 数组加载到张量中
- sql - 将 varchar 转换为 Decimal 时出错
- html - 如何使用beautifulsoup获取另一个标签内的span标签内的文本?
- powershell - 遍历多个值的行
- android - dispatchTouchEvent 中的 ACTION_UP 事件被延迟触发
- entity-framework - 尝试从 SAP HANA DB 创建实体模型时出现连接错误
- javascript - 如何使用引导程序 4 按钮组向复选框表单添加最大值
- linux - 如何在不使用 inotifywait 的情况下监视目录的文件更改?
- azure - 创建 Visual Studio Team System 帐户时,我可以使用我们公司的 Azure AD 作为用户存储吗?