我尝试使用Retrofit2而不是原始的HttpUrlConnection为我的应用程序,所以我测试它,我发现它的第一个基本问题。
我在www.example上试了一下 www.example.com 测试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}
所以我发现了这里的错误:response.errorBody()
中存在特定错误
Note: Only defined users succeed registration
但不确定是什么意思
2条答案
按热度按时间yhuiod9q1#
尝试将
/
添加到路径的末尾,通常HTTP 400指的是来自客户端的错误请求,可能是URL或Body内容与服务器期望的内容不匹配,您是否尝试了curl相同的内容?bvk5enib2#
虽然文档中没有明确提到,但看起来这个虚拟REST API服务器只支持
/register
端点的预定义电子邮件地址,请参阅“Hello ReqRes users!”部分中为预定义的用户提供。例如,使用
eve.holt@reqres.in
作为电子邮件地址似乎是可行的。密码显然并不重要。