【发布时间】:2015-11-01 08:42:41
【问题描述】:
我使用 microsoft asp.net 身份创建了一个错误处理系统,它通过使用枚举作为 json 模型返回错误
public enum ErrorType
{
InvalidPassword,
TooShortPassword,
NullUserName,
InvalidUserName,
NullEmail,
InvalidEmail,
DuplicateUserName,
DuplicateEmail,
OtherIdentityErrors,
LoginIncorrectUserNameOrPass
}
我有一个类可以从中创建错误列表
public class ErrorModelJson
{
public ErrorModelJson()
{
ErrorTypes = new List<ErrorType>();
}
public List<ErrorType> ErrorTypes { get; set; }
}
当用户发送请求登录时,如果用户名或密码不正确登录操作方法返回一个json有一个错误列表
private ApplicationUserManager UserManager => Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
[AllowAnonymous]
public async Task<IHttpActionResult> Login(UserLoginJson userLoginJson)
{
var user = await UserManager.FindByNameAsync(userLoginJson.UserNameOrEmail) ??
await UserManager.FindByEmailAsync(userLoginJson.UserNameOrEmail);
if (user == null || !await UserManager.CheckPasswordAsync(user, userLoginJson.Password))
{
var errorJson = new ErrorModelJson();
errorJson.ErrorTypes.Add(ErrorType.LoginIncorrectUserNameOrPass);
errorJson.ErrorTypes.Add(ErrorType.InvalidPassword);
return ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, errorJson));
}
IUserManagement userManagement = new UserManagement();
return Ok(userManagement.GetUserLoginReturnJson(user));
}
so in my android application i have an enum ErrorType and a class ErrorModelJson to parse received json to ErrorModelJson to create a list of error my android app recieve a json as below
{"ErrorTypes":[9]}
我将通过 gson 和 volley 使用这些代码将此 json 转换为 ErrorModelJson,但我的模型为空,您能帮帮我吗?
@Override
protected VolleyError parseNetworkError(VolleyError volleyError){
NetworkResponse response = volleyError.networkResponse;
switch (response.statusCode)
{
case 400:
String data=new String(volleyError.networkResponse.data);
Gson gson = new Gson();
ErrorModelJson errorModelJson1 = gson.fromJson(data,ErrorModelJson.class);
errorModelListener.onError(errorModelJson1);
break;
}
}
【问题讨论】:
标签: asp.net gson android-volley