Azure MobileSeviceClient InvokeApiAsync - Newtonsoft.Json.JsonReaderException

时间:2016-08-09 16:48:10

标签: json azure azure-mobile-services

我试图在我的Azure移动服务客户端上的自定义api控制器上调用方法。

如果我在浏览器中点击路径,则返回数据就好了。当我尝试从我的应用程序调用它时,我收到以下错误

" Newtonsoft.Json.JsonReaderException:读取字符串时出错。意外的令牌:StartObject。路径'',第1行,第1位。"

public async Task<string> AuthUser (string email, string pass)
    {
        var id =  await client.InvokeApiAsync<string>(
            "Login/AuthUser", 
            System.Net.Http.HttpMethod.Get,                
            new Dictionary<string, string>() {
                {"emailAddress", email },
                {"password",pass }
            }
        );


        if (id != null)
        {
            return id.ToString();
        }
        else
        {
            return "";
        }
    }

这是我打电话的控制器

    using System.Linq;
    using System.Web.Http;
    using System.Web.Http.Description;
    using MyAppService.DataObjects;
    using MyAppService.Models;
    using Microsoft.Azure.Mobile.Server.Config;

    namespace MyAppService.Controllers
    {
      [MobileAppController]
      public class LoginController : ApiController
      {
         private MyAppContext db = new MyAppContext ();

         [HttpGet]
         [ActionName("AuthUser")]        
         public IHttpActionResult Login(string emailAddress, string password)
         {
             var login = db.Members.FirstOrDefault(m => m.Email == emailAddress && m.Password == password);
             if (login != null)
             {
                  return Ok(new {Id = login.Id });
             }
             else
             {
                  return Unauthorized();
             }

         }
     }
 }

编辑:问题是来自控制器的返回类型。将其更改为字符串,它工作。

1 个答案:

答案 0 :(得分:0)

问题是来自控制器的返回类型。将其更改为字符串并且工作正常