0

我创建了以下 API 类来查询 Web 服务

 @POST("/v1/User/forgot-password")
    @FormUrlEncoded
    fun forgotPass(@Field("email") email: String): Call<ForgotPassword>

并将其称为

 val call = RetrofitHelper.instance!!.api.forgotPass(email)
        call.enqueue(object : Callback<ForgotPassword> {

            override fun onResponse(call: Call<ForgotPassword>, response: Response<ForgotPassword>) {
                if (response.code() == 200) {
                    Log.e("response", response.body().toString())
                    forgotPassView.forgotPassRequestSuccess()

                }
            }

            override fun onFailure(call: Call<ForgotPassword>, t: Throwable) {
                Log.e("onFailure", t.message)
            }
        })

我得到的响应是415,虽然 Web 服务工作正常。

我尝试了不同的技术来解决它,但似乎还有更多的东西。请帮我解决这个问题。谢谢。

4

1 回答 1

1

要发送 json 有效负载,请定义一个包装类 --

data class EmailBody(val email: String)

并将其@Body用作您的POST

@POST("v1/User/forgot-password")
fun forgotPass(@Body email: EmailBody): Call<Void>

然后,当你想调用它时,将电子邮件地址包装在一个EmailBody对象中——

service.forgotPass(EmailBody(email))
于 2018-04-28T01:44:11.160 回答