Как связать POST-запрос без Web-API Content-Type .Net core 2.1? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь перехватить XML, содержащийся в HTTP-запросе, который отправляет мне сервер, но HTTP не содержит Content-Type. У меня нет доступа к серверу, поэтому я не могу добавить Content-Type.

Если я пытаюсь связать тело запроса с [FromBody], я получаю сообщение об ошибке 415 Неподдерживаемый тип носителя

[HttpPost("voicebiometricsengine")]
    public async Task<IActionResult> VoiceBiometricsEngine([FromBody] XmlDocument analytics)
    {        
        return Ok();
    }

И если я попытаюсь получить тело в виде строки, строка получит значение Null

 [HttpPost("voicebiometricsengine")]
    public async Task<IActionResult> VoiceBiometricsEngine(string analytics)
    {

        return Ok();
    }

Вы можете увидеть пакет HTTP на следующем изображении: enter image description here

1 Ответ

0 голосов
/ 15 января 2019

Без типа контента фреймворк не знает, как анализировать тело при попытке связать с параметрами вашего метода.

Вместо этого можно прочитать тело запроса вручную внутри метода

[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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...