我试图捕获服务器发送给我的HTTP请求中包含的XML,但是HTTP不包含Content-Type。 我无权访问服务器,因此无法添加Content-Type。
如果我尝试将请求正文与[FromBody]绑定,则会收到错误415不支持的媒体类型
[HttpPost("voicebiometricsengine")]
public async Task<IActionResult> VoiceBiometricsEngine([FromBody] XmlDocument analytics)
{
return Ok();
}
如果我尝试将主体作为字符串获取,则字符串为空
[HttpPost("voicebiometricsengine")]
public async Task<IActionResult> VoiceBiometricsEngine(string analytics)
{
return Ok();
}
答案 0 :(得分:1)
没有内容类型,当尝试与方法参数绑定时,框架不知道如何解析正文。
一种选择是在方法内部手动读取请求正文
[HttpPost("voicebiometricsengine")]
public async Task<IActionResult> VoiceBiometricsEngine(string analytics)
{
using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{
var body = await reader.ReadToEndAsync();
}
return Ok();
}