Как передать xml ввод (запрос) в Web API на. net core 3.1 - PullRequest
0 голосов
/ 03 мая 2020

У меня есть. net core 3.1 web api. Я пробовал следующее, но он всегда обнуляется, когда попадает в него

[HttpPost]     
    public IActionResult ReturnXmlDocument(HttpRequestMessage request)
    {
        var doc = new XmlDocument();
        doc.Load(request.Content.ReadAsStreamAsync().Result);        
        return Ok(doc.DocumentElement.OuterXml.ToString());
    }

Он даже ударил его во время отладки, а также показывает ошибку 415 в Fiddler.

1 Ответ

1 голос
/ 04 мая 2020

Asp. net ядро ​​больше не использует HttpRequestMessage или HttpResponseMessage.

Итак, если вы хотите принять запрос формата xml, вам необходимо выполнить следующие шаги:

1.Установите Microsoft.AspNetCore. Mvc .Formatters. Xml Пакет NuGet.

2.Call AddXmlSerializerFormatters В Startup.ConfigureServices.

public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers()
            .AddXmlSerializerFormatters(); 
    }

3. Примените атрибут Consumes к классам контроллера или методам действий, которые должны ожидать XML в теле запроса.

 [HttpPost]
    [Consumes("application/xml")]
    public IActionResult Post(Model model)
    {
        return Ok();
    }

Для получения более подробной информации вы можно сослаться на официальный документ Модель переплета

...