今天無意間發現請求頭的Content-Length會影響POST請求參數在服務器端的接收長度。
場景一:未美化的請求參數發送請求,成功接收響應。此時Header里面的Content-Length長度為216。結果成功接收響應數據。
場景二:與場景一的任何參數一致的情況下,就美化了下請求參數,導致報錯了。個人理解為美化參數后,將參數添加了一下換行符和空格,導致入參數據量變大
參照:寫一個攔截器獲取服務端獲取的請求參數,發現參數不完整,被截取了后面部分:https://blog.csdn.net/u010173095/article/details/88026265
發現是Content-Length導致的問題后,將Content-Length參數調大,但是發現遲遲未將請求參數發送出去。(TODO:該問題還有待深究)
如果Content-Length不設置,則會提示缺少請求體參數(Missing request body)
解決方式:添加一個請求頭Transfer-encoding,值為Chunked的時候(接下來的body我要一塊一塊的傳,每一塊開始是這一塊的大小,等我傳到大小為0的塊時,就沒了),Content-Length可以不用設置,即使設置了也是沒有生效的效果,此時成功接收到相應結果。
結論:Content-Length設置小了會被截取,參數不完整;設置大了,會超時;經測試,Content-Length多一個數少一個數都不行,必須得精確!