"Неподдерживаемый тип носителя" при установке в соответствие с почтальоном


Я создаю спокойный API с использованием Zend Framework 2 и Apigility от Zend Framework. Для тестирования я использую расширение chrome Postman REST-клиент.

Я могу без проблем получать запросы и отправлять запросы, отправляя данные формы без проблем.

Но когда я пытаюсь выполнить запрос на УСТАНОВКУ, ИСПРАВЛЕНИЕ или УДАЛЕНИЕ, я получаю следующую ошибку:

{
    "type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
    "title":"Unsupported Media Type",
    "status":415,
    "detail":"Invalid content-type specified"
}

Принять белый список в конфигурации Rest-службы соответствия:

application/vnd.timber-ms.v1+json, application/hal+json, application/json

Белый список типов контента:

application/vnd.timber-ms.v1+json, application/json

В контент-тип ответа является application/problem+json

Что я могу сделать, чтобы исправить это и выполнить успешные запросы на УСТАНОВКУ/ИСПРАВЛЕНИЕ? Это проблема с почтальоном или Апигильностью?

Author: Manuel Hoffmann, 2014-03-21

3 answers

Вы получаете ошибку 415 неподдерживаемого типа носителя, когда Apigility не может десериализовать данные, поступающие от клиента. Это недавно было вызвано в документации .

Я подозреваю, что ваша проблема связана с типом содержимого, отправляемым почтальоном. Обратите особое внимание на Белый список типов контента, указанный для службы, и убедитесь, что он содержит тип контента, который вы отправляете.

Например, если у вашей службы есть только приложение/json в Белом списке типов контента, если вы отправите PUT/PATCH с postman в виде URL-адреса x-www-form, вы получите ошибку 415 неподдерживаемого типа носителя. Если вы измените postman на отправку PUT/ИСПРАВЛЕНИЯ с типом содержимого application/json, а тело запроса содержит допустимый JSON, Apigility должен принять запрос.

Вы можете проверить, какой тип содержимого отправляет почтальон, нажав кнопку "Предварительный просмотр" справа от кнопки "Отправить".

 8
Author: Chad Lad, 2014-04-19 01:56:59

У меня была аналогичная проблема в Postman с неподдерживаемыми ответами типа носителя. Тем не менее, я испытал этот ответ как на запросы PUT, так и на запросы POST, используя API моей компании.

Я убедился, что проблема здесь в почтальоне, а не в используемом запросе/API, выполнив тот же запрос с другим аналогичным расширением Chrome под названием Advanced REST Client. Я не знаком с Апигильностью, но почти уверен, что виновником здесь является Почтальон.

Надеюсь, что это можно исправить выпуск как Почтальон и его функция коллекций намного проще в использовании, чем у продвинутого клиента REST.

 1
Author: user2524961, 2014-04-15 20:27:46
  • На почтальоне перейдите на вкладку обычный (или другую вкладку auths) и добавьте заголовок:

    Приложение типа контента/json (или любой другой тип, который вам нужен)

    • убедитесь, что на вкладке raw указаны данные json { "тип": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ", "название": "Неподдерживаемый тип носителя", "статус": 415, "подробности": "Указан недопустимый тип содержимого" }
 0
Author: Chen Keinan, 2015-04-12 07:18:53