簡體   English   中英

與Postman一起投入Apigility時“不支持的媒體類型”

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM