1 回答

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
在進(jìn)行 Retrofit 調(diào)用時,不應(yīng)為 Request 使用 POJO 類,而應(yīng)使用與 Response 匹配的 POJO 類。因為這只是使用參數(shù)進(jìn)行調(diào)用,所以您可能甚至不需要 Request 對象,但擁有一個也沒有壞處。
您的代碼看起來像這樣:
Call<LoginResponse> call = apiLink.loginUser(useremail, userpassword);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
if(!response.isSuccessful()){
String code = Integer.toString(response.code());
Toast.makeText(LoginPage.this, code, Toast.LENGTH_LONG).show();
}
else {
LoginResponse postResponse = response.body();
Log.e("viewResponse",
postResponse.getSuccessResponse().toString());
return;
}
}
@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
Log.e("error in createNewUser", t.getMessage());
}
});
為了進(jìn)一步解釋發(fā)生了什么,當(dāng)你創(chuàng)建你的參數(shù)化調(diào)用時,你告訴 Retrofit 使用哪個對象來解析響應(yīng),(如果你想使用一個對象作為發(fā)布主體數(shù)據(jù),你需要以不同的方式聲明你的 API):
@POST("auth/login")
Call<LoginResponse> loginUser(@Body LoginPost body);
Call<LoginResponse> call = apiLink.loginUser(LoginPost body);
添加回答
舉報