使用AFNetworking读取JSON Web API 2 InvalidModelStateResult结果

大卫·波克森

我正在尝试处理正在构建的iOS应用程序中的ModelState问题。当我想注册用户时,我会将他们的详细信息发送到以下方法:

    // POST api/Account/Register
    [AllowAnonymous]
    [Route("Register")]
    public async Task<IHttpActionResult> Register(RegisterBindingModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };

        IdentityResult result = await UserManager.CreateAsync(user, model.Password);

        if (!result.Succeeded)
        {
            return GetErrorResult(result);
        }

        return Ok();
    }

我在iOS应用程序(Swift)中使用以下方法读取了JSON响应:

func register(user:RegisterModel, successClosure: (() -> ())?, failureClosure: (() -> ())?) {
    let manager  = AFHTTPRequestOperationManager()
    let registerUrl = XXXX

    manager.POST( registerUrl,
        parameters: ["email": user.email, "password": user.password, "confirmpassword": user.passwordConfirmation],
        success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in
            println("register success")
            if let succ = successClosure {
                succ()
            }
        },
        failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
            println("register fail")
            println(error)
            if let fail = failureClosure {
                fail()
            }
    })
}

收到错误(BadRequest(ModelState))时,输出如下:

Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)" UserInfo=0x7f8663e3e890 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x7f8663e3cba0> { URL: http://192.168.0.71:8888/api/Account/Register } { status code: 400, headers {
"Cache-Control" = "no-cache";
"Content-Length" = 227;
"Content-Type" = "application/json; charset=utf-8";
Date = "Sun, 17 Aug 2014 00:31:57 GMT";
Expires = "-1";
Pragma = "no-cache";
Server = "Microsoft-IIS/8.0";
"X-AspNet-Version" = "4.0.30319";
"X-Powered-By" = "ASP.NET";
"X-SourceFiles" = "=?UTF-8?B?WjpcUHJvamVjdHNcTGFybnNmaXRcTGFybnNmaXRcYXBpXEFjY291bnRcUmVnaXN0ZXI=?=";
} }, NSLocalizedDescription=Request failed: bad request (400), NSErrorFailingURLKey=http://192.168.0.71:8888/api/Account/Register}

Web API 2是否没有向我发送ModelState无效的原因?还是我错误地访问了错误响应?最终,我想知道ModelState无效的原因是什么。

大卫·波克森

在AFNetworking中,可以通过以下方式访问Web API 2提供的错误: operation.responseString

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Asp.Net Web Api 2获得类似于Google API响应的JSON结果?

来自分类Dev

修改Web API 2 OData获取查询结果

来自分类Dev

返回 pdf url 作为 web api 2 查询的结果

来自分类Dev

Web API 2 JSON输出与命名对象

来自分类Dev

Web Api 2接收json数组

来自分类Dev

Autofac:使用Web API 2进行设置

来自分类Dev

Web API 2缓存

来自分类Dev

带对象名称的WEB API JSON结果

来自分类Dev

如何使用Web API 2 + AspNet Identity 2扩展IdentityRole

来自分类Dev

转换Web API操作的结果

来自分类Dev

C# 从 Web API 读取 JSON

来自分类Dev

从MVC控制器使用Web API时返回JSON结果

来自分类Dev

小写和下划线的Web API 2 Json输出

来自分类Dev

Web API 2:最佳实践将Controller的ViewModel数据返回到$ http成功结果?

来自分类Dev

使用odata和Web API 2时创建cookie

来自分类Dev

405不允许使用的方法Web API 2

来自分类Dev

如何在Web API 2中从静态类使用StructureMap?

来自分类Dev

无法使Autofac与Web API 2一起使用

来自分类Dev

使用OAuth 2的Python Google API Web爬网程序

来自分类Dev

如何在 Web API v2 中使用参数?

来自分类Dev

Web API 2:如何搜索

来自分类Dev

Web API 2的静态对象

来自分类Dev

Web API 2在不同的层

来自分类Dev

Web API 2: how searching

来自分类Dev

Web API 2的静态对象

来自分类Dev

使用承载令牌的MVC 5 Identity 2和Web API 2授权和调用api

来自分类Dev

使用angular 2和Typescript从URL(Web API)获取Json对象

来自分类Dev

对Web API 2使用自定义JSON格式化程序

来自分类Dev

如何使用 JSON 将对象类从 angular 2 直接映射到 web api?