2015-10-19 6 views
1

Я создал проект Web API 2 и настроен контроллер OData4 следующие шаги здесь: Web API 2 Odata 4 TutorialКак вы размещаете на веб-API 2 OData контроллер

Однако всякий раз, когда я пытаюсь сделать простой POST (с телом JSON для создания объекта), используя Postman, я получаю следующую ошибку:

Запрашиваемый ресурс не поддерживает http-метод «POST».

Действие POST в контроллер выглядит следующим образом:

public async Task<IHttpActionResult> Post(Product product) 
    { 
     if(!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 
     db.Products.Add(product); 
     await db.SaveChangesAsync(); 
     return Created(product); 
    } 

JSON Я отправляю в теле запроса выглядит следующим образом:

{ 
"Id":"lewisblack", 
"Name":"Lewis", 
"Price":"Black", 
"Category":"Category 1" 
} 

И я включил следующие заголовки в также запрос:

OData-Version: 4.0

OData-MaxVersion: 4,0

Content-Type: применение/JSON

Я пропускаю что-то здесь?

ОБНОВЛЕНИЕ: Выяснил проблему. Я использовал неправильный URI.

ответ

1

Не много информации, чтобы идти дальше:

Я подозреваю, что вы не имеете PostMethod на соответствующий контроллер.

Otherwhise, некоторые другие вещи, чтобы думать:

  • OData чувствителен к регистру
  • Вы пропускаете свойство, которое требуется
  • тип данных является неправильным (Id в примере проекта является целым числом , он выглядит как строка в вашем проекте, цена должна быть десятичной, а не строкой, ...)

Каков код ответа HTTP (если выше не помогло), когда вы отправляете объект. (используйте инструмент, подобный скрипачу). Совет. Если ваш ответ HTTP является «плохим запросом», ваши данные, вероятно, недействительны для продолжения действия.

+0

Спасибо за указание, что, я использовал случайные данные в образце. Виноват. Я понял вопрос, мой URI был неправильным. –