1 回答

TA貢獻1829條經驗 獲得超13個贊
在進行 Retrofit 調用時,不應為 Request 使用 POJO 類,而應使用與 Response 匹配的 POJO 類。因為這只是使用參數進行調用,所以您可能甚至不需要 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());
}
});
為了進一步解釋發生了什么,當你創建你的參數化調用時,你告訴 Retrofit 使用哪個對象來解析響應,(如果你想使用一個對象作為發布主體數據,你需要以不同的方式聲明你的 API):
@POST("auth/login")
Call<LoginResponse> loginUser(@Body LoginPost body);
Call<LoginResponse> call = apiLink.loginUser(LoginPost body);
添加回答
舉報