此资源不支持请求实体的媒体类型“application/xml”

问题描述 投票:0回答:1

我试图在以下函数的参数中传递 XLIFF 内容,但出现错误:

public IHttpActionResult ProcessSmartlingTranslation([FromBody]xliff xliff)
       {
           return Content(HttpStatusCode.BadRequest, "Any object");
       }

{ "message": "请求实体的媒体类型'application/xml'是 不支持此资源。", "exceptionMessage": "否 MediaTypeFormatter 可用于读取“xliff”类型的对象 媒体类型为“application/xml”的内容。", "exceptionType": “System.Net.Http.UnsupportedMediaTypeException”,“stackTrace”:“位于 System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent 内容、Type 类型、IEnumerable

1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n   at System.Net.Http.HttpContentExtensions.ReadAsAsync(HttpContent content, Type type, IEnumerable
1 格式化程序、IFormatterLogger formatterLogger、 CancellationToken(取消令牌) 在 System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage 请求、Type 类型、IEnumerable`1 格式化程序、IFormatterLogger formatterLogger、CancellationToken(取消令牌)” }

我该如何解决这个问题?

完整代码如下:

// <summary>
   /// XliffModel created
   /// </summary>
   public class xliff
   {
       /// <summary>
       /// file getter setter method
       /// </summary>
       public string file { get; set; }
       /// <summary>
       /// body getter setter method
       /// </summary>
       public string body { get; set; }
   }
   /// <summary>
   /// Web api for smartling translation processing
   /// </summary>
   /// <seealso cref="ApiController" />
   public class SmartlingController : ApiController
   {
       #region Public Methods

       /// <summary>
       /// Get or insert blog comments which is approved based on blogs
       /// </summary>
       /// <remarks> Get or insert blog comments which is approved based on blogs</remarks>
       /// <param name="message">The comment.</param>
       /// <response code="200">Get approved blog comments</response>
       /// <response code="404">Not found</response>
       /// <returns>IHttpActionResult</returns>
       [Route("api/smartling/ProcessSmartlingTranslation")]
       [VersionedRoute("", 1)]
       [ResponseType(typeof(HttpResponseMessage))]
       [HttpPost]
       public IHttpActionResult ProcessSmartlingTranslation([FromBody]xliff xlf)
       {
           return Content(HttpStatusCode.BadRequest, "Any object");
       }
       #endregion
   }
c# .net xml asp.net-web-api
1个回答
0
投票

当我检查默认的 xml 媒体文件格式化程序时,它看起来像..

enter image description here

我不知道如果添加手动会发生什么。可能需要自定义序列化..

            config.Formatters.XmlFormatter
            .SupportedMediaTypes
            .Add(new System.Net.Http.Headers.MediaTypeHeaderValue("application/xliff+xml"));
© www.soinside.com 2019 - 2024. All rights reserved.