Http协议中的Content-Length属性
?? Android開發(fā)的時候需要與從服務器上獲取數(shù)據(jù),數(shù)據(jù)是通過http協(xié)議封裝的。Android端使用的是Xutils第三方插件來發(fā)起http請求,但是每次只能拿到部分數(shù)據(jù)。通過仔細分析后原來是Content-Length屬性的問題。Content-Length屬性是用來說明傳輸?shù)恼拇笮 O旅婢妥屑毭枋鲆粋€整個過程。
無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;
服務器端根據(jù)請求的文件名來返回相應文件的內(nèi)容。
瀏覽器中的響應頭
瀏覽器中響應頭中沒有Content-Length屬性來說明數(shù)據(jù)的大小。但是有個Transfer-Encoding屬性,它的作用是當傳輸數(shù)據(jù)的大小不確定時通過chunked(片)的方式進行傳輸。這種方式可以保證瀏覽器可以拿到全部的數(shù)據(jù)。但是在Android中就沒有這么幸運。
XUtils插件
使用該插件時無法從服務器上獲取完整的數(shù)據(jù)。服務器上發(fā)送的數(shù)據(jù)是完整的json數(shù)據(jù),因為服務器端的日志顯示是200代碼,但是客戶端并沒有將所有數(shù)據(jù)全部拿到??蛻舳酥荒玫搅瞬糠謹?shù)據(jù),如下圖所示
有Conent-Length屬性
轉載于:https://www.cnblogs.com/xidongyu/p/5938888.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Http协议中的Content-Length属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate getCurren
- 下一篇: 『码蛋』Android 周刊第1期