Retrofit2:带有 JSON 数据的 Kotlin POST 请求返回 400

问题描述 投票:0回答:1

我正在尝试为我的应用程序使用 Retrofit2 而不是原始 HttpUrlConnection,所以我正在测试它,我发现了它的第一个基本问题。

我在 Reques.in 测试 API 上尝试将 json 数据传递给它,但它返回 HTTP 代码 400.

object AppAPI {

    private const val baseUrl = "https://reqres.in/api/"

    fun getInstance(): Retrofit {
        return Retrofit.Builder().baseUrl(baseUrl)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
    }
}

interface ApiRegisterUser {
    @Headers(
        "Content-Type: application/json;charset=utf-8",
        "Accept: application/json;charset=utf-8"
    )
    @POST("register")
    suspend fun registerUser(@Body userData: UserRegisterData) : Response<UserRegisterResponse>
}

data class UserRegisterData(
    @SerializedName("email") val email: String,
    @SerializedName("password") val password: String
)

回复:

response: error: response: Response{protocol=h2, code=400, message=, url=https://reqres.in/api/register}
android kotlin gson retrofit2
1个回答
0
投票

尝试在路径末尾添加

/
,通常 HTTP 400 是指来自客户端的错误请求,这可能是 URL 或 Body 内容与服务器期望的内容不匹配,您是否尝试过使用 curl 进行同样的操作?

 @POST("register/")
 suspend fun registerUser(@Body userData: UserRegisterData) : Response<UserRegisterResponse>
© www.soinside.com 2019 - 2024. All rights reserved.