use*_*508 35 c# asp.net-web-api
我们什么时候应该使用该HttpResponseMessage
对象Request.CreateResponse(...)
?何时应该使用该方法?
另外,HttpResponseMessage
对象和Request.CreateResponse(...)
方法有什么区别?
Bad*_*dri 44
HttpResponseMessage对象和Request.CreateResponse(...)方法有什么区别?
它可能是显而易见的,但它是Request.CreateResponse
创建HttpResponseMessage
对象的辅助方法.
当我们必须使用HttpResponseMessage对象时,我们必须使用Request.CreateResponse(...)方法?
如果要使用内置内容协商功能,请使用Request.CreateResponse
.返回对象时,ASP.NET Web API必须将对象序列化为响应主体.这通常可以是JSON或XML(其他媒体类型是可能的,但您需要创建格式化程序).选择的媒体类型(JSON或XML)基于请求内容类型,请求中的Accept
标头等,内容协商是确定要使用的媒体类型的过程.通过使用Request.CreateResponse
,您将自动使用此过程的结果.
在另一方面,如果你创建HttpResponseMessage
你自己,你必须指定一个基于媒体格式上的物体将被序列化,并通过指定媒体格式器你自己,你可以重写conneg的结果.
编辑以下是如何指定JSON格式化程序的示例.
public HttpResponseMessage Get(int id)
{
var foo = new Foo() { Id = id };
return new HttpResponseMessage()
{
Content = new ObjectContent<Foo>(foo,
Configuration.Formatters.JsonFormatter)
};
}
Run Code Online (Sandbox Code Playgroud)
有了这个,即使您发送请求Accept:application/xml
,您也只能获得JSON.
归档时间: |
|
查看次数: |
34400 次 |
最近记录: |