2017-02-14 74 views
0

兩件事:可以使用HTTP POST獲取數據 - 不創建新數據

首先,我是否正確地指出HTTP POST可用於檢索現有信息?如果是這樣,響應代碼是什麼?第二,如果可以使用POST,那麼Web.API應用程序中的URL的格式以及應該發送到服務器的數據是什麼ID。

公司安全並不妨礙使用HTTP Get,但由於某種安全問題,他們強烈反對。 OTOH,當我想要獲取現有信息時,我真的不喜歡命名PostInformation()方法。

感謝

回答

1

上午我糾正一個HTTP POST可以用來檢索現有的信息?

RFC 7231, section 4.3.3來自:

POST方法請求該目標資源的過程根據所述資源自身的特定語義括在所述請求的表示。

這意味着服務器改變狀態,而不是嚴格意義要求它。所以是的,雖然沒有真正鼓勵,但這是安全的。事實上,過去許多網絡應用程序都這樣做,以規避GET方法的侷限性,例如overly long URLs

什麼是Web.API應用程序中URL的格式,以及應將哪些數據發送到服務器。

該URL將是相同的沒有query string。如果您將請求的正文標記爲application/x-www-form-urlencoded,則可以使用通常用於查詢字符串的相同字符串填充它。對於更復雜或二進制數據,您應該使用multipart/formdata(請參閱this answer)。

我真的不喜歡的命名方法PostInformation(),當我想獲得現有的信息

這幾乎是一個非問題。我理解你的擔憂,但考慮一下:你最終做的是得到數據。 你如何是使用的協議的實現細節。沒有什麼應該阻止你命名你的方法PostInformation()。此外,如果實施變化,你應該怎麼做,你突然使用GET而不是?將所有發生的PostInformation()重構爲GetInformation()

+0

謝謝!另外,我明白了你對方法命名的看法,但我是那些缺乏想象力的文字人物之一! ;-) – EoRaptor013