[使用C#使用IHttpActionResult将请求类型发送为XML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[使用C#使用IHttpActionResult将请求类型发送为XML相关的知识,希望对你有一定的参考价值。

如何将请求类型数据作为XML传递?

我在IHttpAction结果下面创建了一个结果,该结果接受并返回JSON数据。我的要求是我想发送请求XML并返回XML响应。我已经将XMLAttribure添加到[DataMember],但是仍然以大张旗鼓的形式显示为JSON的Request对象?

[HttpPost]
[Route("api/getuser")]
public IHttpActionResult getuser(PortalRequest  xmlRequest)
{
    return Ok("success);
}



    [DataContract]
    [XmlSerializerFormat]
    public class PortalRequest 
    {
        [DataMember, XmlAttribute]
        public string UserId { get; set; }
        [DataMember, XmlAttribute]
        public string UserName { get; set; }
        [DataMember, XmlAttribute]

    }

enter image description here

答案

在HttpConfiguration中,您需要添加以下几行以将XML作为可接受的格式。

config.Formatters.JsonFormatter.SupportedMediaTypes.Clear();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));

以上是关于[使用C#使用IHttpActionResult将请求类型发送为XML的主要内容,如果未能解决你的问题,请参考以下文章

创建新的 IHttpActionResult 操作结果方法

IHttpActionResult - 如何使用?

如何使用IHttpActionResult对Created-201响应进行编码

将HttpResponseBase转换为IHttpActionResult

使用 IHttpActionResult 为非 OK 响应返回内容

ASP.NET Core 中的 IHttpActionResult 和辅助方法