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)
我在 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)