使用 .net core web api 从正文中将 application/xml 作为字符串读取

问题描述 投票:0回答:1
我有一个简单的 .net core Web api。请求将是 application/xml 媒体类型。但是,我想在控制器内将其作为字符串读取,并在将该字符串转换为 XML 之前进行一些检查。然而,像这样的简单方法会返回 415 媒体类型不支持错误。

[HttpPost()] public async Task<IActionResult> UpdateStatus([FromBody] string msg) {}
我可以添加 

AddXmlSerializerFormatters

 并从正文中获取我想要的对象,但这会绕过一些错误处理。有没有办法将 application/xml 读取为字符串?

.net-core asp.net-core-webapi
1个回答
0
投票
我们通常使用

StreamReader

来读取XML内容。

[HttpPost] [Route("update-status")] public async Task<IActionResult> UpdateStatus() { using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { string xmlContent = await reader.ReadToEndAsync(); if (string.IsNullOrWhiteSpace(xmlContent)) { return BadRequest("Empty XML content"); } return Ok($"Received XML content: {xmlContent}"); } }
    
© www.soinside.com 2019 - 2024. All rights reserved.