Hacemos una revisión completa cada artículo de nuestro espacio con la meta de mostrarte siempre información más veraz y actualizada.
Solución:
Para mayor claridad sobre la respuesta dada anteriormente, así es como puede usar las funciones de extensión.
Si estás usando com.squareup.okhttp3:okhttp:4.0.1
los métodos más antiguos de crear objetos de Tipo de medio y Cuerpo de solicitud han quedado en desuso y no se pueden utilizar en kotlin.
Si desea utilizar las funciones de extensión para obtener una Tipo de medio objeto y un Cuerpo de respuesta objeto de sus cadenas, primero agregue las siguientes líneas a la clase en la que espera usarlas.
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
Ahora puede obtener directamente un objeto de Tipo de medio Por aquí
val mediaType = "application/json; charset=utf-8".toMediaType()
Para obtener un objeto de Cuerpo de solicitud primero convierta el JSONObject que desea enviar a un string Por aquí. Tienes que pasarle el objeto mediaType.
val requestBody = myJSONObject.toString().toRequestBody(mediaType)
Recomiendo encarecidamente usar Retofit para tal caso, pero si realmente necesita lidiar con Request
/Response
entonces su solución se parece a:
val json = """
"email":
"emailto":"$emailto",
"emailfrom":"$emailfrom",
"emailcc":"$emailcc",
"emailbcc":"$emailbcc",
"emailsubject":"$emailsubject",
"emailtag":"$emailtag",
"emailtextbody":"$emailtextbody",
"attachments":[]
""".trimIndent()
val body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json)
val request = Request.Builder()
.url(url)
.post(body)
.build()
Simplemente pase los parámetros entre paréntesis (p. ej. $emailto
) a su función.
En caso de que no desee compilar json manualmente, puede usar la biblioteca Gson.
data class EmailInfo(
val emailto: String,
val emailfrom: String,
val emailcc: String,
val emailbcc: String,
val emailsubject: String,
val emailtag: String,
val emailtextbody: String,
val attachments: List
)
data class EmailRequest(
val email: EmailInfo
)
...
val emailRequest = EmailRequest(
email = EmailInfo(
emailto = "...",
emailfrom = "...",
emailcc = "...",
emailbcc = "...",
emailsubject = "...",
emailtag = "...",
emailtextbody = "...",
attachments = ...
)
)
val json = Gson().toJson(emailRequest)
val body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json)
val request = Request.Builder()
.url(url)
.post(body)
.build()
}
Te invitamos a sustentar nuestra investigación dejando un comentario o valorándolo te damos la bienvenida.