Retrofit2 POST 以正文作为参数的请求 Kotlin

Retrofit2 POST request with body as parameter Kotlin

我是 Kotlin 的新手,无法将现有的 POST 请求参数更改为正文。我查看了其他答案,但其中 none 的请求部分代码与我的相似。我不知道如何更改它只是遇到很多语法错误。谢谢!

import retrofit2.Call
import retrofit2.http.*

interface PostInterface {
    @POST("signin")
    fun signIn(@Query("email") email: String, @Query("password") password: String): Call<String>
}


class BasicRepo @Inject constructor(val postInterface: PostInterface) {

   fun signIn(email: String, password: String): MutableLiveData<Resource> {
       val status: MutableLiveData<Resource> = MutableLiveData()
       status.value = Resource.loading(null)
       postInterface.signIn(email, password).enqueue(object : Callback<String> {
           override fun onResponse(call: Call<String>, response: Response<String>) {
                 if (response.code() == 200 || response.code() == 201) {
                     // do something
                 } else {
                    // do something
                 }
            }
        }
     }
}

class User constructor(
    email: String,
    password: String
) 
@POST("signin")
suspend fun signIn(
    @Body body: User,
): ResponseBody

顺便说一句,只有当您的 API 支持时,您才可以使用 body 而不是查询参数。 另外,我建议使用 ResultWrapper。 Handling errors with Retrofit and Coroutines in a single place