使用IHttpActionResult作为ASP.NET WebAPI方法调用中的返回类型有何意义。
由于这是一个接口,我们如何以接口的形式返回结果?
有人能解释一下背后的概念吗?
提前谢谢!!
发布于 2016-12-28 13:30:46
根据微软ASP.NET文档,
在Web 2中引入了IHttpActionResult接口,定义了一个HttpResponseMessage工厂。下面是使用IHttpActionResult接口的一些优点:
IHttpActionResult包含一个方法ExecuteAsync,它异步地创建一个HttpResponseMessage实例。
public interface IHttpActionResult
{
Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken);
} 如果控制器操作返回IHttpActionResult,Web将调用ExecuteAsync方法来创建HttpResponseMessage。然后将HttpResponseMessage转换为HttpResponseMessage消息。
下面是创建纯文本响应的IHttpActionResult的一个简单实现:
public class TextResult : IHttpActionResult
{
string _value;
HttpRequestMessage _request;
public TextResult(string value, HttpRequestMessage request)
{
_value = value;
_request = request;
}
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
var response = new HttpResponseMessage()
{
Content = new StringContent(_value),
RequestMessage = _request
};
return Task.FromResult(response);
}
}主计长中的另一个示例:
public class ValuesController : ApiController
{
public IHttpActionResult Get()
{
return new TextResult("hello", Request);
}
}及其Respond
HTTP/1.1 200确定内容-长度:5内容-类型:text/平原;charset=utf-8 Server: Microsoft-IIS/8.0日期: Mon,2014年1月27日08:53:35 GMT 你好
我希望这能帮到你。祝好运。
https://stackoverflow.com/questions/41362952
复制相似问题