.net 6.0 webapi支持 xml返回xml json返回json
【代码】.net 6.0 webapi支持 xml返回xml json返回json。
·
// 添加控制器并配置格式化器
var builder = WebApplication.CreateBuilder();
builder.Services.AddControllers(options =>
{
options.Filters.Add<ContentTypeFilter>();
options.ReturnHttpNotAcceptable = true; // 强制要求Accept头匹配
// 添加 XML 格式化器
options.InputFormatters.Add(new XmlSerializerInputFormatter(options));
options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
})
.AddXmlSerializerFormatters()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
});
添加筛选器
public class ContentTypeFilter: IResultFilter
{
public void OnResultExecuting(ResultExecutingContext context)
{
if (context.Result is ObjectResult objectResult)
{
var requestContentType = context.HttpContext.Request.ContentType;
if (requestContentType?.Contains("application/xml") == true)
{
objectResult.ContentTypes.Clear();
objectResult.ContentTypes.Add("application/xml");
}
else // 默认或JSON
{
objectResult.ContentTypes.Clear();
objectResult.ContentTypes.Add("application/json");
}
}
}
public void OnResultExecuted(ResultExecutedContext context) { }
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)