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
我是 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