Почему я получаю здесь ответ 415?

Я создал проект веб-API по умолчанию, используя ASP.NET Core. Это дало мне следующий контроллер

[Route("api/[controller]")]
    public class ValuesController : Controller
    {
        // GET api/values
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        [HttpPost]
        public void Post([FromBody]string value)
        {
        }

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/values/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }

Я использую fiddler для тестирования API.

Когда я отправляю запрос GET http://localhost:21674/api/values, я получаю объект JSON с значения значение1 и значение2

Когда я пытаюсь опубликовать сообщение по тому же URL-адресу, я получаю ответ 415 неподдерживаемого типа мультимедиа, как показано ниже. Нажмите здесь, чтобы увидеть изображение

Что я делаю неправильно?


person jim crown    schedule 26.10.2016    source источник
comment
Это application/json, а не application\json   -  person Tseng    schedule 26.10.2016
comment
это, кажется, не имеет никакого значения.   -  person jim crown    schedule 26.10.2016
comment
Из любопытства работает ли изменение тела запроса на { value="test" }?   -  person Theo    schedule 26.10.2016
comment
нет, всё тот ​​же 415 :(   -  person jim crown    schedule 26.10.2016


Ответы (2)


Ваш запрос неправильно подделан. Нет application\json мим-типа.

Правильный тип mime для JSON — application/json (обратите внимание на косую черту).

Обновлять

Также вам не разрешено иметь кавычки в нем. Последний заголовок должен быть: Content-Type: application/json

person Tseng    schedule 26.10.2016
comment
Смотрите обновление. Вы не можете иметь кавычки в нем - person Tseng; 26.10.2016

Отправьте { "значение": "тест"} json, а не просто "тест".

person luki    schedule 26.10.2016
comment
По предложению Tseng, как только я удалю двойную кавычку, я смог сделать это только с помощью теста - person jim crown; 26.10.2016