如何使用 Kotlin 发布多部分请求布尔值?

问题描述

如何使用 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"

服务器在检索到的数据类型行上显示错误。 我在数据库在线有 BooleanInteger 值。 但是,我们只能使用 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 (将#修改为@)