2
我面臨着一個PHP寧靜的API中有問題的請求......PHP - 寧靜的API - HTTP GET長URI
我試圖得到一些產品信息(重量,工藝,價格...)通過調用這個API。
問題是提供的URI可能包含很多字符,因爲我們試圖儘可能減少API調用。你可以理解,如果我們使用HTTP GET方法發送過長的URI,那麼我肯定會用414或500 HTTP錯誤結束。
那麼,如何才能:
- 發送一個HTTP GET請求來獲取具有長URI
- 保持RESTFUL(信息,而無需使用POST,如果我指的是寧靜的文檔 - >這是主要的問題)
這裏是一個請求的示例:
http://<myWebsite>/rprocess/api/process/{"data":["FLY.DELeco.LOT100.DIM10x10.FACrv.SUPdemma.GRA350.PELbrv.VERss","FLY.DELnor.LOT500.DIM20x30.FACr.SUPcoubr.GRA300.PELbrv.VERss"]}
- 如您所見,我們在URI中發送一個JSON編碼的字符串。
- 這個例子工程,因爲我們只是試圖讓[進程]信息的兩種產品(我們想打個電話有很多更多)
我已經尋找一個答案就這個問題,但它看起來就像我們不能在這種情況下保持安寧。
這裏是我已經找到了答案:
- 使用POST並添加組頭以
X-HTTP-Method-Override: GET
- 服務器(不推薦)
- 拆分,以便在GET請求上增加
url limit size
不達到url長度限制(這不是一個好主意,因爲API可以一次處理更多產品,因爲我們實際上可以發送它...)
我希望th OSE信息可以幫助您回答我的問題:)
謝謝您的幫助
謝謝您的回答! 我不認爲這個問題存在... 嘗試想象發送一個帶有'12345'而不是我們的「FLY ...」的json,在某些時候我們將達到URI長度的限制,即使ID較小。 –
是否值得考慮在客戶端上使用分頁?這樣你可以檢索更多的可管理的塊 – arcanine
分頁將導致這樣的答案: 拆分GET請求,以不達到URL長度限制(這不是一個好主意,因爲API可以處理方式更多的產品在我們一次實際上可以把它...) –