[HttpGet]
[HttpPost]
public HttpResponseMessage GetXml(string value)
{
var xml = $"<result><value>{value}</value></result>";
return new HttpResponseMessage
{
Content = new StringContent(xml, Encoding.UTF8, "application/xml")
};
}
Swaggerを使用してアクションを呼び出し、このパラメーター「テキスト値」を渡しました
期待される結果は次のようなXMLファイルである必要があります:テキスト値
実際の結果:渡された値のない奇妙なjson結果! https://www.screencast.com/t/uzcEed7ojLe
次の解決策を試しましたが、うまくいきませんでした。
services.AddMvc().AddXmlDataContractSerializerFormatters();
services.AddMvc().AddXmlSerializerFormatters();
iActionResultを採用するか、直接ContentResultを返すことができます。
[HttpGet("{value}")]
[Produces("application/xml")]
public IActionResult GetXml(string value)
{
var xml = $"<result><value>{value}</value></result>";
//HttpResponseMessage response = new HttpResponseMessage();
//response.Content = new StringContent(xml, Encoding.UTF8);
//return response;
return new ContentResult{
ContentType = "application/xml",
Content = xml,
StatusCode = 200
};
}
上記はあなたに与えます
<result>
<value>hello</value>
</result>
iActionResultの詳細については、次のリンクを参照してください
ASP.NETコア2+の場合、 XmlDataContractSerializerOutputFormatter
を構成する必要があります。これは Nuget から見つけることができます。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(c =>
{
c.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
});
}