我正在测试用ASP.NET Web API编写RESTful API。我在客户端上使用RestSharp来模拟不同的调用。Rest Rest API调用ASP.NET Web API
我想提交一个应用程序ID查询字符串,并且正文应该是一个类型为“Log”的集合。每次,由服务器接收的正文发布的应用程序ID get始终为NULL。
代码在服务器上:
public class LogsController : ApiController
{
public HttpStatusCode Post(Guid ID, [FromBody] List<Log> logs)
{
if (logs != null)
return HttpStatusCode.OK;
else
return HttpStatusCode.PreconditionFailed;
}
}
public class Log
{
public Guid ErrorId { get; set; }
}
在客户端代码:
static void Main(string[] args)
{
var client = new RestClient("http://localhost:36146/api");
var json = JsonConvert.SerializeObject(new List<Log>()
{
new Log { ErrorId = Guid.NewGuid()}
});
var request = new RestRequest("Logs", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("ID", Guid.NewGuid(), ParameterType.QueryString);
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.AddBody(json);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Console.Read();
}
public class Log
{
public Guid ErrorId { get; set; }
}
我想我得到了这个工作,但是不管是什么我现在做的“日志”参数在服务器上始终为NULL。
保罗 - 它很好的知道你找到了解决方案,这里是一个链接:http://www.codeproject.com/Articles/826359/Consuming-ASP-NET-WEB-API-using-ASP-NET-MVC描述RestSharp用法的 - 和 - Re可能会有所帮助。 –