使用InvokeApiAsync函数调用Azure API(Woking Fine)。我想读取这些值

时间:2015-08-17 04:58:44

标签: c# .net json console-application azure-mobile-services

代码 (前端)

    static void Main(string[] args)
    {

        var client = new MobileServiceClient("MYURL", "MYKEY");
        var arguments = new Dictionary<string, string>
        {
            { "UserName", "snegi" }, {"Password", "test123" }
        };

调用API

var result = client.InvokeApiAsync<System.Threading.Tasks.Task<AuthenticationResponse>>("authenticateuser", HttpMethod.Get, arguments);

这里我想读取API返回的值

        Console.WriteLine(result.UserId);
        Console.ReadLine();

    }


    public class AuthenticationData
    {
        public string UserName { get; set; }
        public string Password { get; set; }

    }


}
public class AuthenticationResponse
{
    public int UserId { get; set; }
}

}

JSON RESULT

{ { UserID: 3022 }

2 个答案:

答案 0 :(得分:2)

当我做这样的事情时,我更喜欢用远程方法指示我正在等待的返回类型。在这里,您可以期望从remove方法获取带有用户ID的整数,或者您也可以期望包含其ID和其他数据的“用户”对象(我假设您必须使用实体)。

您可以尝试这样的事情:

int result = await client.InvokeApiAsync<string>("authenticateuser", HttpMethod.Get, arguments);

User result = await client.InvokeApiAsync<User>("authenticateuser", HttpMethod.Get, arguments);

当然,假设您有一个名为“authenticateuser”的API,并且远程方法(在检查login / mdp凭证之后)返回关联的用户ID或相关的用户实体对象。

User对象的序列化/反序列化是自动完成的,您无需担心。

答案 1 :(得分:0)

谢谢你们,我刚从这个方法解决了这个问题..

 var result = client.InvokeApiAsync<IEnumerable<AuthenticationData>>("authenticateuser", HttpMethod.Post, arguments);