設置響應頭Content-Length后前端JSON parse error


  今天需要寫一個第三方請求的過濾器,即前端請求后台,后台使用restTemplate請求三方接口,然后封裝響應頭和響應體返回給前端。

  可是,當寫完代碼,在前端請求后一看

   響應信息顯示不全,這直接讓我想到了在后端封裝中設置了Content-Length這個響應頭,於是看代碼

   貌似一點問題都沒有啊!再看前端接收到的響應頭

   24個字符?看看實際響應結果是多少字符呢?

   嗯?按理說向后台要24個字符,肯定能把16個字符都取出來啊。再看后台,打斷點調試

   發現結果字符串是一個長度為48的數組,這時猛然想起上學時C++老師說過讀寫文件可以使用字符流或字節流,沒錯,那Content-Length一定要設置字節數組的長度了(推測HTTP傳輸是按字節流),而java的String.length()默認是返回字符數組的字符數,怎么才能獲取其字節流長度呢?

 完美解決

不過有一點,為什么getBytes()得到的是32,而debug界面顯示的是48,猜測debug顯示的不是字符串的字節流數組,而是字符串這個類的一些基本信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM