我剛開始工作的雅司病,試圖創建一些簡單的RESTful Web服務,但是我遇到了一個意想不到的問題:我似乎不能當我做了PUT請求訪問我的數據。當我嘗試使用yaws_api:parse_post功能,我得到以下錯誤:雅司病和PUT請求
ERROR: Can't parse post body for 'PUT' requests: URL: ...
我寫了整個請求,一切看起來是相同的,所以我很困惑。難道我做錯了什麼? GETs和POSTs正常工作。事實上,我現在處理POST和PUT的唯一區別就是我現在每個人都顯示的內容,現在我只是編寫測試代碼來顯示成功。
在此先感謝。
酷!這看起來像我正在尋找的。謝謝! – blockcipher 2011-03-29 12:30:46
我認爲'PUT'沒有關聯的解析方法是很奇怪的,因爲[RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616.html)將'PUT'定義爲完整的資源替換。這意味着請求主體可以擁有比「POST」更廣泛的媒體類型,這使得提供這樣一個分析器幾乎是不可能的。從技術上講,'POST'主體也可以是多種多樣的,但實際上由於使用Web表單,'POST'具有'application/x-www-form-urlencoded'媒體類型的數據的可能性更大。 – 2011-04-18 00:52:19
Steve,我很確定你知道RFC2616比我好,但它看起來像一個PUT主要標識包含請求的實體,因此使它比POST更具體。但是,根據RFC2616,POST和PUT具有相同的媒體類型範圍,嚴格來說,'yaws_api:parse_post()'可能會失敗,並引發解析錯誤(我們需要處理)。那麼爲什麼不有一個'yaws_api:parse_put()'方法工作並且出錯有點類似呢?根據我的實際經驗,大多數PUT請求都具有application/x-www-form-urlencoded數據,就像POST請求一樣。 – ettore 2011-12-28 19:39:14