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

时间:2017-02-25 12:25:07

标签: c# .net xml api asp.net-web-api

我试图在以下函数的参数中传递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”:“at   System.Net.Http.HttpContentExtensions.ReadAsAsync [T](HttpContent   content,Type type,IEnumerable 1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpContentExtensions.ReadAsAsync(HttpContent content, Type type, IEnumerable 1格式化程序,IFormatterLogger formatterLogger,   取消语音取消语句)\ r \ n at   System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage   请求,类型类型,IEnumerable`1格式化程序,IFormatterLogger   formatterLogger,CancellationToken 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
   }

1 个答案:

答案 0 :(得分:0)

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

enter image description here

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

            config.Formatters.XmlFormatter
            .SupportedMediaTypes
            .Add(new System.Net.Http.Headers.MediaTypeHeaderValue("application/xliff+xml"));