You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 12:36:02