在Minimal API中处理XML请求时遭遇HTTP 415错误的求助
解决Minimal API接收XML请求时的HTTP 415错误
问题根源
builder.Services.AddControllers().AddXmlSerializerFormatters()仅为MVC控制器注册XML格式化器,Minimal API默认不会复用这些配置,因此需要单独为Minimal API添加XML输入/输出支持。
解决方案
1. 注册XML格式化服务
在服务配置中添加针对Minimal API的XML格式化器注册:
var builder = WebApplication.CreateBuilder(args); // 注册XML序列化格式化器,供Minimal API使用 builder.Services.AddMvcCore().AddXmlSerializerFormatters(); // 若项目同时使用MVC控制器,可保留原有配置并补充上述代码 // builder.Services.AddControllers().AddXmlSerializerFormatters(); var app = builder.Build();
2. 验证请求的Content-Type
发送请求时必须设置Content-Type: application/xml,这是服务器识别XML请求的必要条件,缺少该头会直接触发415错误。
3. 确保请求模型符合XmlSerializer要求
你的ToDoRequest类需要满足XmlSerializer的序列化规则:
- 拥有公共无参构造函数
- 属性为公共可读写(
get; set;)
示例模型:
public class ToDoRequest { public int Id { get; set; } public string Title { get; set; } public bool IsCompleted { get; set; } }
4. 完整端点配置(与你的代码兼容)
app.MapPost("api/todo/xml", async ([FromBody] ToDoRequest request) => { return Results.Ok("TESTT"); }) .Accepts<ToDoRequest>("application/xml") .AllowAnonymous();
内容的提问来源于stack exchange,提问作者Zahid Mustafa
相关产品推荐
相关产品推荐

