Azure移动服务 - 使用复杂类型参数消耗POST操作

时间:2015-04-01 05:34:39

标签: azure azure-mobile-services

我使用以下方法创建了自定义控制器:

// POST api/CustomLogin
public HtpResponseMessage Post(LoginRequest loginRequest)
{
     // ...
}

LoginRequest的位置是:

public class LoginRequest
{
    public string Username { get; set; }
    public string Password { get; set; }
}

如何使用Microsoft.WindowsAzure.MobileServices.MobileServiceClient来使用此操作?我当时希望使用InvokeApiAsync,但我只能看到两个覆盖,这两个覆盖都不允许我在请求消息中传递内容。

1 个答案:

答案 0 :(得分:7)

您应该可以执行以下操作:

var loginParams = new LoginRequest() { ... };
var result = await Client.invokeApiAsync<LoginResult, string>("CustomLogin", loginParams);

其中任何一个都会为您提供控制请求内容的选项,第一个可让您完全控制内容和内容。响应。

public async Task<HttpResponseMessage> InvokeApiAsync(string apiName, 
  HttpContent content, HttpMethod method, IDictionary<string, string> 
  requestHeaders, IDictionary<string, string> parameters)

public async Task<U> InvokeApiAsync<T, U>(string apiName, T body, 
  HttpMethod method, IDictionary<string, string> parameters)

public async Task<JToken> InvokeApiAsync(string apiName, JToken body,    
  HttpMethod method, IDictionary<string, string> parameters)