Для 415 неподдерживаемых типов носителей необходимо проверить ниже:
services.AddMvc().AddXmlSerializerFormatters();
1) Какой тип параметров функции следует использовать?
А если выЧтобы получить XML по умолчанию, вам нужно изменить тип параметра string
на XElement
:
[HttpPost]
public void Post([FromBody]XElement request)
{
//do your logic..
}
2) Какой тип, функция должна возвращать?
Это зависит только от вас. Вы можете вернуть соответствующие данные, что хотите получить из xml.
3)Должен ли я создать свой собственный класс Xml, который будет использоваться в качестве типа параметра функции?
Вы можете создать свой собственный класс и получить xml, как показано ниже:
1.UserКласс:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
2. Контроллер:
[HttpPost]
public IActionResult Post([FromBody]User user)
{
var response = new User
{
Id = 3,
Name = "Sandy"
};
return Ok(response);
}
3.Postman (если вы хотите получить ответ в формате XML, вы должны добавить заголовок Accept application/xml
, так как по умолчаниюjson.):
<?xml version="1.0" encoding="UTF-8"?>
<User>
<Id>1</Id>
<Name>aa</Name>
</User>
4.Результат:
Ссылка: http://www.devcode4.com/article/asp-net-core-xml-request-response