【发布时间】:2020-02-25 19:33:31
【问题描述】:
我尝试发布这些登录名和密码
{
"userLogin": "Mark",
"userPassword": "Pencil"
}
根据 POSTMAN,我将 JSON 作为原始代码放在上面,我得到一个空的响应正文和响应代码:200(记录成功)。但我无法在 Android Studio 中实现它。这是一个API接口
interface LoginService {
@POST("login")
fun userLogin(
@Query("userLogin") userLogin: String,
@Query("userPassword") userPassword: String
):Call<Void>
}
这是改造:
fun checkLoginData() {
val retrofit = Retrofit.Builder()
.baseUrl("myurl...")
.addConverterFactory(GsonConverterFactory.create())
.build()
val service = retrofit.create(LoginService::class.java)
val call = service.userLogin("Mark", "Pencil")
call.enqueue(object : Callback<Void>{
override fun onResponse(call: Call<Void>, response: Response<Void>) {
if(response.code() == 200){
Toast.makeText(applicationContext,"Logged in", Toast.LENGTH_SHORT).show()
}
}
override fun onFailure(call: Call<Void>, t: Throwable) {
Toast.makeText(applicationContext,"Error", Toast.LENGTH_SHORT).show()
}
})
}
我想我的LoginService 创建不正确,因为总是有 onFailure 响应。应该怎么做才对?
【问题讨论】:
-
在 Postman 上显示您的回复以及为什么您将回调设为无效?
-
为原始 json 传递 @body
-
@Ashish 我使用回调 void 因为响应正文为空。邮递员显示空的身体和状态:200