如果您可以从服务器获得 2 个不同的响应请求,如何格式化/设计您的课程?
注意:如果 JSON 响应格式(设计)与您的类不同,Retrofit 将引发异常。JSON 响应中的所有字段都必须存在于您的类中。
Java 类,如 JSON 响应:
public class RequestResponseLogin
{
public ResponseLogin status;
public class ResponseLogin
{
public boolean success;
public List<String> message;
}
}
JSON 响应:
{
"status" : {
"success" : false
"message" : {
"Invalid credientials",
"....",
"...."
}
}
}
这就是我请求响应的方式:
interface iLogin
{
@GET
RequestResponseLogin loginUser(@Query("user") String user, @Query("pass") String pass);
}
// ....
RequestResponseLogin response = data.loginUser("admin", "abc123");
如果登录失败,public List<String> message;
则将填充来自 Web 服务器的消息:
message[0] = 'Invalid credentials';
message[1] = 'Invalid username';
message[2] = 'Password match correct';
但是,如果 Web 服务器没有回复任何内容(成功登录),那么我会通过改造得到一个异常,因为public List<String> message;
它是空的,Web 服务器回复了一个简单的空字符串消息而不是字符串数组。如果我更改public List<String> message;
为,它会起作用public String message;
,但我不能,因为如果登录失败,它必须是一个字符串数组。