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

Http协议中的Content-Length属性相关推荐

  1. JavaScript中函数的length属性

    JavaScript中函数的length属性 length是函数的一个属性 函数的length是js函数对象的一个属性,函数的length代表形参的个数(即有多少必传参数) 形参的数量不包括不包括剩余 ...

  2. Java中数组的length属性

    今天用字符串数组作为底层实现set集合时,对于当前集合中的容量和大小又混淆了. 需要自己在类中定义size 字符串数组中的length属性指的就是字符串数组的容量.

  3. string.length_C.中的String.Length属性示例

    string.length C#String.Length属性 (C# String.Length property) String.Length property is used to get th ...

  4. java数组length_Java数组属性 length属性,表示数组的长度

    java中数组的.length属性 Class A: public void run() { byte[] sendDateBuff=new byte[593]; sen正常来说,java中数组长度一 ...

  5. 【Cson原创】javascript中length属性的探索

    本文中,我将会通过类数组对象(array like object),探索javascript中的length属性的一些秘密. 例子1: var obj={0:'a',1:'b'}alert(obj.l ...

  6. css4个伪元素,CSS_CSS3中的content属性使用示例,CSS中主要的伪元素有四个:befo - phpStudy...

    CSS3中的content属性使用示例 CSS中主要的伪元素有四个:before/after/first-letter/first-line,在before/after伪元素选择器中,有一个conte ...

  7. @Column中的length属性和@Size和@length区别

    @Column:jpa注解,length属性标识数据库中字段长度,但是传入参数时不会校验,在往数据库中插入大于该长度的数据时,会报错 @Size:javax.validation.constraint ...

  8. java中的length属性,length()方法,size()方法

    java语言中 针对数组提供了length属性来获取数组的长度 针对字符串提供了length()方法来获取字符串的长度 针对泛型集合类提供了size()方法来获取元素的个数 public class ...

  9. 详解CSS3中新增的内容属性:content

    详解CSS3中新增的内容属性:content 1. 用法: content属性用于插入生成的内容,常和:before选择器和:after选择器配合使用,将生成的内容放在一个元素内容的前面或后面. 2. ...

  10. 论社会信任网络中货币的债权属性和关于去中心化货币网络协议的建议

    I. 论社会信任网络中货币的债权属性 货币的债权属性 我可以用借据来支付,不过有下面三个限制条件: 只有信任我的朋友才会接受我的借据,陌生人不会. 我的朋友每人只会接受一定金额的借据,这取决于他们各自 ...

最新文章

  1. web 服务发布注意事项
  2. UA MATH575B 数值分析下III 图像恢复
  3. 秋冬季节吃什么水果好
  4. python主进程 子进程_pool主进程捕获子进程异常
  5. sqlnet.expire_time and idle_time
  6. 图像分割matlab_基于MATLAB的指针示数识别
  7. keil4编译c语言,用keil4编译C语言代码,编译通过,但是链接时无法产生.hex文件。...
  8. jzoj4249-游戏【贪心】
  9. SpringMVC日期类型转换问题处理方法归纳
  10. 运算符sizeof_C程序通过使用sizeof()运算符对数组元素进行计数
  11. (组合数学笔记)Pólya计数理论_Part.7_Pólya定理的母函数形式
  12. python-PIL-16bit-灰度图像生成-tiff
  13. Android代码修改系统时间
  14. springboot的测试类
  15. android电视不能root权限,有谁知道安卓电视root权限获取方法?
  16. 如何打开剪贴板查看器?
  17. tmux分屏工具使用
  18. nginx中的timeout超时设置,请求超时、响应等待超时等
  19. 谈谈谈zookeeper
  20. 关于滑轮组的计算机知识点,计算机试题第一套.docx

热门文章

  1. Linux目录结构和常用命令
  2. 黑暗城堡 最短路径生成树
  3. 迈向成功的关键在于执行(摘自李开复博士的《做最好的自己》)
  4. Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
  5. eclipse alt+/快捷键失效
  6. RabbitMQ学习总结(4)——分发任务在多个工作者之间实例教程
  7. Nginx静态文件的配置与安全认定
  8. 看了两篇园子里的文章,初步懂了点接口的涵义
  9. JS里在光标位置插入字符
  10. python dict getitem_python – 拦截dict __getitem__方法调用,当它传递给另一个字典的更新方法时...