[英]“Unsupported media type” when PUTing to Apigility with Postman
我是使用Zend Framework 2和Zend Framework的Apigility構建RESTful API的。 為了測試,我使用chrome擴展Postman REST-Client。
通過發送表單數據沒有問題,我可以毫無問題地執行GET請求和POST請求。
但是當我嘗試執行PUT,PATCH或DELETE請求時,我收到以下錯誤:
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
"title":"Unsupported Media Type",
"status":415,
"detail":"Invalid content-type specified"
}
在Rest-Service-Config of Apigility中接受白名單:
application/vnd.timber-ms.v1+json, application/hal+json, application/json
內容類型白名單:
application/vnd.timber-ms.v1+json, application/json
響應的內容類型是application/problem+json
我該怎么做才能解決這個問題並成功完成PUT / PATCH請求? 這是Postman或Apigility的問題嗎?
當Apigility無法反序列化來自客戶端的數據時,您將收到415不支持的媒體類型錯誤。 最近在文檔中 提到了這一點。
我懷疑你的問題是由郵遞員發送的內容類型引起的。 請特別注意為服務列出的Content-Type白名單,並確保它包含您要發送的內容類型。
例如,如果您的服務在Content-Type白名單中只有application / json,並且您使用postman發送PUT / PATCH為x-www-form-urlencoded,則會收到415錯誤的Unsupported Media Type。 如果您更改郵遞員以使用內容類型的application / json發送PUT / PATCH並且請求正文包含有效的JSON,則Apigility應接受該請求。
您可以通過單擊“發送”按鈕右側的“預覽”按鈕來檢查郵遞員發送的內容類型。
我在Postman中遇到了類似的問題,媒體類型響應不受支持。 但是,我使用我公司的API在PUT和POST請求中都遇到了這種響應。
我通過與另一個名為Advanced REST Client的類似Chrome擴展程序運行相同的請求,驗證了Postman是問題,而不是正在使用的請求/ API。 我不熟悉Apigility,但很確定郵差是這里的罪魁禍首。
希望有一個解決此問題的方法,因為Postman及其集合功能比高級REST客戶端更容易使用。
在postman上轉到普通標簽(或其他auths標簽)並添加標題:
Content-Type application / json(或您需要的任何類型)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.