Http协议中的Content-Length属性
生活随笔
收集整理的這篇文章主要介紹了
Http协议中的Content-Length属性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?? Android開發的時候需要與從服務器上獲取數據,數據是通過http協議封裝的。Android端使用的是Xutils第三方插件來發起http請求,但是每次只能拿到部分數據。通過仔細分析后原來是Content-Length屬性的問題。Content-Length屬性是用來說明傳輸的正文大小。下面就仔細描述一個整個過程。
無Content-Length屬性
服務器端
<?php$filePath = 'app/'.$_GET['item'];header("Content-type: text/html; charset=utf-8"); $size = filesize($filePath);$str = file_get_contents($filePath);echo $str;
服務器端根據請求的文件名來返回相應文件的內容。
瀏覽器中的響應頭
瀏覽器中響應頭中沒有Content-Length屬性來說明數據的大小。但是有個Transfer-Encoding屬性,它的作用是當傳輸數據的大小不確定時通過chunked(片)的方式進行傳輸。這種方式可以保證瀏覽器可以拿到全部的數據。但是在Android中就沒有這么幸運。
XUtils插件
使用該插件時無法從服務器上獲取完整的數據。服務器上發送的數據是完整的json數據,因為服務器端的日志顯示是200代碼,但是客戶端并沒有將所有數據全部拿到。客戶端只拿到了部分數據,如下圖所示
有Conent-Length屬性
轉載于:https://www.cnblogs.com/xidongyu/p/5938888.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Http协议中的Content-Length属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate getCurren
- 下一篇: 【基础部分】之apache配置与应用