我在我的網頁API的作用是返回一個HttpResponseMessage
:網頁API:將數據添加到HttpResponseMessage
public async Task<HttpResponseMessage> Create([FromBody] AType payload)
{
if (payload == null)
{
throw new ArgumentNullException(nameof(payload));
}
await Task.Delay(1);
var t = new T { Id = 0, Name = payload.tName, Guid = Guid.NewGuid() };
var response = new MyResponse { T = t };
var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ObjectContent(typeof(MyResponse), response, new JsonMediaTypeFormatter { SerializerSettings = { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore } }) };
return result;
}
現在,我的問題是,如果提出要求,並請求的Content-Type
是application/xml
,我應該使用xml formatter
來應答身體。
有沒有辦法使用泛型類,並讓框架根據請求的內容類型決定在運行時使用哪種格式化程序?
我已經這樣做了,請求是一個xml,響應是json ...我不知道爲什麼 –
基於請求的accept頭。如果要根據請求的內容類型強制內容,請將其從請求中取出並將其包含在創建響應重載中。 'Request.CreateResponse(HttpStatusCode.OK,response,Request.Content.Headers.ContentType);' – Nkosi
由於響應內容類型將基於請求內容類型。 – Nkosi