Kotlin 改装后的错误代码415

Kotlin 改装后的错误代码415,kotlin,retrofit,mvp,android-mvp,Kotlin,Retrofit,Mvp,Android Mvp,我创建了以下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 : Ca

我创建了以下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服务工作正常

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

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

data class EmailBody(val email: String)
并将其用作你帖子的@Body


应该是v1/User/forget password和baseUrlblahblah/强调第一个/缺少,第二个415通常表示您以错误的格式发送数据。您确定服务希望数据为application/x-www-form-urlencoded,而不是其他格式的JSON、url中的查询参数等吗?@EpicPandaForce它没有做任何更改difference@iagreen是的,它是application/json,但我仍然得到了400个HttpLoggingInterceptor,没有显示任何移动的东西,但是现在我在第1行第1列路径$1处得到输入的失败结束,服务器返回了什么?听起来好像什么也没送回来。从上面的代码来看,您似乎希望返回一个对象?服务器将不返回任何内容。只要代码200或其他,那么您不应该试图将主体解析为放弃的密码。改用Void。请参见上面的编辑。
@POST("v1/User/forgot-password")
fun forgotPass(@Body email: EmailBody): Call<Void>
service.forgotPass(EmailBody(email))