2016-08-09 4 views
0

私のAzureモバイルサービスクライアントのカスタムAPIコントローラーでメソッドを呼び出そうとしています。Azure MobileSeviceClient InvokeApiAsync - Newtonsoft.Json.JsonReaderException

ブラウザのパスにヒットした場合、データは正常に返されます。私のアプリからそれを呼び出そうとすると、次のエラーが発生します。

"Newtonsoft.Json.JsonReaderException:予期しないトークン:StartObject。Path、 '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(); 
      } 

     } 
    } 
} 

EDITを呼んでいるコントローラです。それを文字列に変更し、それがうまくいった。

+0

カスタムAPIと本体のモデルはどのように見えますか? –

+0

問題が見つかりました。メソッドが文字列を期待していて、サービスがIHTTPActionResultを返していました。私の悪い – GooseZA

答えて

0

問題はコントローラからの戻り値の型です。それを文字列に変更して動作させました

関連する問題