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;
<?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属性
Http协议中的Content-Length属性的更多相关文章
- DOM中XMLDOMnodelist的length属性的表示是:(选择1项)
DOM中XMLDOMnodelist的length属性的表示是:(选择1项) A. 该对象中文本字符的长度 B. 该对象中元素节点的数量 C. 该对象中节点的数量 D. 该对象中文档对象的数量 解答: ...
- Javascript 中函数的 length 属性
每个函数都有一个 length属性 (函数名.length), 表示期望接收的函数的个数(而不是实际接收的参数个数) 它与arguments不同. arguments.length 是表示函数实际接收 ...
- Javascript中length属性的总结
Javascript中length属性的总结 一.StringObject中的length length属性是返回字符串的字符数目. 例如: // 普通字符串 var str = " ...
- php重建二叉树(函数缺省参数相关的都写在后面,比如array_slice函数中的$length属性,故第一个参数是操作的数组)
php重建二叉树(函数缺省参数相关的都写在后面,比如array_slice函数中的$length属性,故第一个参数是操作的数组) 一.总结 牛客网和洛谷一样,是真的好用 二.php重建二叉树 输入某二 ...
- 浅谈js数组中的length属性
前言 一位正在学习前端的菜鸟,虽菜,但还未放弃. 内容 首先,我们都知道每个数组都有一个length属性 这个length属性一般我们用来循环遍历的约束,一般我们都会把他认为是该数组里面有几个元素这个 ...
- HTTP协议中状态码的应用
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. 所有状态码的第一个数字代表了响应的五种状态之一. Mark from 维基百科 消息 ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- The maximum string content length quota (8192) has been exceeded while reading XML data
原文:The maximum string content length quota (8192) has been exceeded while reading XML data 问题场景:在我们W ...
- C#操作Kentico cms 中的 content(winform环境)
前段时间做了个winform程序,去管理kentico网站的content,包括content节点的增删改查,以及相应节点内容的修改.现在将对content的操作方法简单的介绍一下. 我们想要操作ke ...
- HTTP协议中的报文格式
按照传输过程,HTTP 报文分为请求报文和响应报文.请求报文和响应报文的结构差不多,这里只对 HTTP 请求报文做一个总结.HTTP 请求报文由 请求行.请求头.请求体(请求数据).空行 四个部分组成 ...
随机推荐
- Session Sticky About Nginx
Nginx以前对session 保持支持不太好,主要采用ip_hash把同一来源的客户(同一C段的IP)固定指向后端的同一台机器,ip_hash有个缺点是不能实现很好的负载均衡:直到nginx的扩展模 ...
- jQuery 3.0 的变化
时隔 3 个月,jQuery 团队终于发布了 3.0 Alpha 版本.有两个版本 jQuery compat 3.0 和 jQuery 3.0. jQuery compat 3.0 对应之前的 1. ...
- LaTeX字体相关
以下内容均来自网络. 字体命令: 相应的字体声明都有相应的字体命令 family: \textrm{文本} \texttt{ } \textsf{ } shape : \textup{文本} \ ...
- cloudera cdh native lib
如果通过命令行的方式安装cloudera 版本的hadoop,下载它的cdh版本. 解压后执行,你会发现报warning,没有native的库,lib/native是空的. 如何获取native的文件 ...
- 转载:JavaSE之反射
该文章转载自:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html Java反射详解 本篇文章依旧采用小例子来说明,因为我 ...
- copy-paste component
http://www.cnblogs.com/wantnon/p/4579008.html
- Maven系列一pom.xml 配置详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 怎样关闭WIN7系统的自动更新
百度经验 > 游戏/数码 > 电脑 > 电脑软件 怎样关闭WIN7系统的自动更新 听语音 | 浏览:108460 | 更新:2012-07-24 18:03 | 标签:win7 1 ...
- 移动端API开发
手机APP接口 接口:客户端发送一个请求到服务器 接口:1.URL地址:http://域名/控制器/方法 或者 https:// 2.test.php处理客户端发送数据 3.数据返回 ...
- [No000034]知乎-长期接收碎片化知识有什么弊端?
你所接受的一切信息,构成了你的思维方式. 所以,长期接受碎片信息的后果,就是让你的思维变得狭隘,难以进行复杂的思考. 碎片信息通常具备这样的特征: •它们往往是一些事实的集合而非逻辑 •它们往往大量简 ...