Xamarin RestSharp:Json 对象发送到 Azure Web API,结果为空响应

Xamarin RestSharp: Json object send to Azure Web API with result null response

我在 Xamarin 上使用 RestSharp 与使用 POST 的 WebAPI 进行通信。我可以发送一些东西并得到回复,但结果不是我所期望的。

这是我在 Xamarin 上的代码。

                var request = new RestSharp.RestRequest ("api/device/stats", RestSharp.Method.POST);
            request.AddHeader ("Content-Type", "application/json; charset=utf-8");

            request.RequestFormat = DataFormat.Json;
            request.AddBody(new AppUsageInfo {MAC = "ASDF"}); 
            RestSharp.IRestResponse response = client.Execute (request);
            var content = response.Content;

在我的 WebAPI 上:

 public string Post([FromUri]UsageLogModel usageState)
    {
        //LogFunction.AddUsageLogs(usageState);
        if (usageState.MAC == null)
            return "fail";
        else
            return "success";
    }

UsageLogModel 是:

public class UsageLogModel
{
    public string MAC;
}

不知何故,响应是 "Fail",其中 MAC 为空。我挠了挠头,但不知道发生了什么。-

您的 Xamarin 代码将 MAC 内容放入请求正文中(这可能适用于 POST),但 Web API 需要参数在查询字符串中(这就是 [FromUri] 属性所做的)。尝试将 Web API 方法更改为:

public string Post([FromBody]UsageLogModel usageState)