Подтвердить что ты не робот

Нет MediaTypeFormatter доступен для чтения объекта типа "Реклама" в asp.net web api

У меня есть класс, это имя: Реклама:

 public class Advertisement
{
    public string Title { get; set; }
    public string Desc { get; set; }
}

и в моем контроллере:

public class OrderController : ApiController
{
    public UserManager<IdentityUser> UserManager { get; private set; }

    // Post api/Order/Test

    [Route("Test")]
    public IHttpActionResult Test(Advertisement advertisement)
    {
        var currentUser = User.Identity.GetUserId();
        Task<IdentityUser> user = UserManager.FindByIdAsync(currentUser);

      return Ok(User.Identity.GetUserId());
    }

но когда я тестирую его с Postman, я сталкиваюсь с этой ошибкой,

 "Message": "The request contains an entity body but no Content-Type header. The inferred media type 'application/octet-stream' is not supported for this resource.",
"ExceptionMessage": "No MediaTypeFormatter is available to read an object of type 'Advertisement' from content with media type 'application/octet-stream'.",
"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 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n   at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)"

Может ли AnyBody помочь мне?

4b9b3361

Ответ 1

В вашем WebApiConfig.cs добавить это внутри регистра

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/octet-stream"));

Ответ 2

"ExceptionMessage": "Нет MediaTypeFormatter доступен для чтения объекта типа" Реклама "из контента с типом" application/octet-stream "типа мультимедиа.",

Это означает, что ваше приложение не может читать октет-поток Content-Type - это то, что предоставил запрос. Это одно разочарование, которое у меня есть с веб-API. Однако есть способ обойти это. Легкий способ - изменить Content-type на "application/json" или "application/xml", который легко прочитать. Труднее всего создать свой собственный MediaTypeFormatter.