问题描述
如何使用 Multiform 发送布尔值?科特林。
这是我的要求:
private fun request(){
val checkMale: CheckBox = findViewById(R.id.checkMale)
val tfName: EditText = findViewById(R.id.editRegisterName)
val tfEmail: EditText = findViewById(R.id.editRegisterEmail)
val mail = checkMale.isChecked
val requestBody: RequestBody = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("username",tfName.text.toString())
.addFormDataPart("email",tfEmail.text.toString())
.addFormDataPart("male",true) // <------------------------- HERE
.build()
val client = OkHttpClient()
val request: Request = Request.Builder()
.url("http://192.168.0.104:5000/register")
.post(requestBody)
.addHeader("cache-control","no-cache")
.addHeader("Postman-Token","7e231ef9-5236-40d1-a28f-e5986f936877")
.build()
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call,response: Response) {
if (response.isSuccessful) {
val myResponse = response.body!!.string()
this@Registeractivity.runOnUiThread(Runnable {
println(response.code)
Log.d("response",myResponse)
println("done")
})
}
}
override fun onFailure(call: Call,e: IOException) {
println("Failed to execute request")
}
})
}
结果:"Failed to execute request"
服务器在检索到的数据类型行上显示错误。 我在数据库在线有 Boolean 和 Integer 值。 但是,我们只能使用 multipart 发送 String 值:
val requestBody: RequestBody = MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("username",tfName.text.toString())
.addFormDataPart("email",tfEmail.text.toString())
.addFormDataPart("male",true.toString()) // <---------------------------------------- HERE
.build()
有什么解决办法吗?读过标量解决方案,但在 Kotlin
中没有找到任何使用示例(改造):
Retrofit 2.0 Multipart Request,send boolean type in form data including file
P.S:使用过 okhttp3
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)