我正在尝试为我的应用程序使用 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}
尝试在路径末尾添加
/
,通常 HTTP 400 是指来自客户端的错误请求,这可能是 URL 或 Body 内容与服务器期望的内容不匹配,您是否尝试过使用 curl 进行同样的操作?
@POST("register/")
suspend fun registerUser(@Body userData: UserRegisterData) : Response<UserRegisterResponse>