[英]Post XML return “405 Unsupported Media Type”
我正在開發用於上載XML文件的Web API,但是當我嘗試將XML文件發送到路由時,出現以下錯誤:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
"title": "Unsupported Media Type",
"status": 415,
"traceId": "80000018-0000-ff00-b63f-84710c7967bb"
}
我正在通過Postman進行測試,我的控制器具有以下功能:
namespace NFEApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UploadController : ControllerBase
{
// POST api/upload
[HttpPost]
public string Post([FromBody] XmlElement request)
{
return request.OuterXml;
}
}
}
添加到標題“ Content-Type:application / xml”中 ,將XML文件發送為“ binary”,將XML文本發送為“ raw”,類型為“ XML(application / xml)”,則無效。 我該如何進行?
您需要按如下所示在ConfigureServices中添加AddXmlSerializerFormatters()
,以便可以將對象與XML進行序列化:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddXmlSerializerFormatters().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
有關如何上傳xml文件的更多詳細信息,您可以在此處參考
如果將XML作為原始文本發布到正文中,則只需在API方法中使用字符串作為參數即可。
namespace NFEApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UploadController : ControllerBase
{
// POST api/upload
[HttpPost]
public string Post([FromBody] string xml)
{
return xml;
}
}
}
一種替代方法是在您的API方法中使用IFormCollection作為參數,然后將表單作為multipart / form-data發送 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.