无法在Retrofit Android (Kotlin)中发出Post请求



我一直在使用Jetpack Compose开发Android Q&A应用程序。我一直试图在改造后的请求,但我发送的数据不在我的API网站。不过,我已经成功地发出了Get请求。我读了很多文档,但我无法找出这个代码有什么问题。
这是数据类。

data class UsersEntity(
val id: Int? = null,
val name: String? = null,
val uid: String? = null
)

这是Service接口

interface UserService {
@POST("createusers")
fun createUsers(@Body usersinfo: UsersEntity): Call<Unit>
}

当我点击一个按钮时,我想发送数据到服务器。我得到了日志"嗨,干得好"但是我不能在我的API上看到数据。

Button(
onClick = {
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
val retrofit = Retrofit.Builder()
.baseUrl("https://api.*****.com/")
.addConverterFactory(MoshiConverterFactory.create(moshi))
.build()
val service: UserService = retrofit.create(UserService::class.java)
val usersInfo = UsersEntity(
3, "Alex", "164E92FC-D37A")
service.createUsers(usersInfo).enqueue(object: Callback<Unit> {
override fun onResponse(call: Call<Unit>, response: Response<Unit>) {
Log.d("Hi", "good job")
}
override fun onFailure(call: Call<Unit>, t: Throwable) {
Log.d("Hi", "error")
}
})
}

我像这样修改了代码。

Button(
onClick = {
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
val retrofit = Retrofit.Builder()
.baseUrl("https://api.*****.com/")
.addConverterFactory(MoshiConverterFactory.create(moshi))
.build()
thread {
try {
val service: UserService = retrofit.create(UserService::class.java)
val usersInfo = UsersEntity(
3, "Alex", "164E92FC-D37A")
service.createUsers(usersInfo).enqueue(object: Callback<ResponseBody> {
override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
Log.d("Response", "${response.body()}")
}
override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
Log.d("Hi", "error")
}
})
} catch (e: Exception) {
Log.d("response", "debug $e")
}
}
},

有人能帮帮我吗?谢谢你。

我认为你的棒球不应该以斜杠结尾。试试这个。

.baseUrl("https://api.*****.com")

对于您的接口(也是Call<ResponseBody>):

interface UserService {
@POST("/createusers/")
fun createUsers(@Body usersinfo: UsersEntity): Call<ResponseBody>
}

在过去有一些问题,所以这可能会有所帮助。如果没有,它至少会清理代码一点:p

你也可以使用ProxyMan拦截你的请求并读取你的应用程序实际发送到服务器的内容,这可能是一个问题!

Proxyman.io

最新更新