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を呼んでいるコントローラです。それを文字列に変更し、それがうまくいった。
カスタムAPIと本体のモデルはどのように見えますか? –
問題が見つかりました。メソッドが文字列を期待していて、サービスがIHTTPActionResultを返していました。私の悪い – GooseZA