2013-10-19 11 views

cevap

6

Yalnızca Yanıt DTO'yu döndürmek, temel olarak varsayılan davranıştan memnun olduğunuz anlamına gelir ve hizmetiniz yanıt gövdesini istediği İçerik Türü'ne serileştirildiği şekilde döndürecektir.

HttpResult, Hizmetinizin Yanıt'a ek olarak ek HTTP özelleştirmeleri eklemesi gerektiğinde geçerlidir (örn. Ek HTTP Üstbilgileri) - ancak HTTP Yanıt gövdesinin tel formatını değiştirmez (İçeriği değiştirmezseniz) - Yanıtın serileştirildiğini değiştirecek tür). HttpResult Yanıtı özelleştirmek için sadece bir yolu olmasına rağmen

, burada birkaç diğerleri:

public class HelloService : Service 
{ 
    public object Get(Hello request) 
    { 
     //1. Returning a custom Response Status and Description with Response DTO body: 
     var responseDto = ...; 
     return new HttpResult(responseDto, HttpStatusCode.Conflict) { 
      StatusDescription = "Computer says no", 
     }; 

     //2. Throw or return a HttpError: 
     throw new HttpError(System.Net.HttpStatusCode.Conflict, "SomeErrorCode"); 

     //3. Modify the Request's IHttpResponse 
     base.Response.StatusCode = (int)HttpStatusCode.Redirect; 
     base.Response.AddHeader("Location", "http://path/to/new/uri"); 
    } 

    //4. Using a Request or Response Filter 
    [AddHeader(ContentType = "text/plain")] 
    public string Get(Hello request) 
    { 
     return "Hello, {0}!".Fmt(request.Name); 
    } 
} 

fazla bilgi için Customize HTTP Responses yazısını okuyun.

+0

Hızlı yanıt için teşekkürler –