社区
基础编程
帖子详情
php curl如何得到HTTP chunked response中chunked data size?
lingyue1012
2012-07-05 02:13:51
curl向一个网站post数据时,可以得到相应的响应头(header)和响应体(body),响应体的传输编码(Transfer-Encoding)是区块格式(chunked)。怎么得到http区块应答(HTTP chunked response)中的数据大小(Chunk size)?
...全文
586
6
打赏
收藏
php curl如何得到HTTP chunked response中chunked data size?
curl向一个网站post数据时,可以得到相应的响应头(header)和响应体(body),响应体的传输编码(Transfer-Encoding)是区块格式(chunked)。怎么得到http区块应答(HTTP chunked response)中的数据大小(Chunk size)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq120848369
2012-07-05
打赏
举报
回复
就是个Content的数据封装格式。
一个16进制的长度\r\n
一段数据\r\n
一个16进制的长度\r\n
一段数据\r\n
一个16进制的长度\r\n
一段数据\r\n
0\r\n
\r\n
curl已经把这些数据解开串到一起了,你自己解析就是先找第一个\r\n\r\n,后面就是body,然后顺次找\r\n得到一个长度,然后往后读这么长的数据,然后掠过\r\n。循环这个过程,一直到遇到长度0就不用再解析了。
实际整个body的长度可以curl这样做:
CURLINFO_SIZE_DOWNLOAD - Total number of bytes downloaded
URLINFO_HEADER_SIZE - Total size of all headers received
mixed curl_getinfo ( resource $ch [, int $opt = 0 ] )
用这个函数得到这俩值,相减就是原始response里的总body长度,而真正数据穿起来多长就是returntransfer的数据长度了。
foolbirdflyfirst
2012-07-05
打赏
举报
回复
呵呵,curl是比较智能,平常工作多用curl,想详细了解协议还是得自己构建解析http协议。
lingyue1012
2012-07-05
打赏
举报
回复
怪不得我自己用socket写的一个函数有长度呢
lingyue1012
2012-07-05
打赏
举报
回复
哦。。curl已经解码了。原来如此呀,明白啦。。谢谢!笨鸟先飞?。。。
foolbirdflyfirst
2012-07-05
打赏
举报
回复
了解Transfer-Encoding:chunked协议是什么意思,以及返回的http body是什么样的格式,问题基本就解决得七七八八了。
你看看
http://topic.csdn.net/u/20110109/18/5f164cba-5b24-4497-96de-1a0f06ba84ab.html
我的回帖,有代码的。
lingyue1012
2012-07-05
打赏
举报
回复
查遍了curl的opt貌似没有,不过强大的curl居然没有? 还是有其他方法呢?
cURL
实战教程
由King老师精心打造
cURL
实战课程,由浅入深的讲解了
cURL
中
常见的API,及
cURL
在实际开发
中
的应用,实现了模拟登陆、文件上传下载、多线程
cURL
等。通过
cURL
可以操作各种网络资源!山哥出品,必属精品!
php
禁用
chunked
,
php
下
HTTP
Response
中
的
Chunked
编码实现方法
进行
Chunked
编码传输的
HTTP
Response
会在消息头部设置:Transfer-Encoding:
chunked
表示Content Body将用
Chunked
编码传输内容。
Chunked
编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个Chunk分为头部和正文两部分,头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写),正文部分就是指定长...
php
curl
请求
Chunked
-Encoded
data
遇到的一个问题
http
s://www.cnblogs.com/yjf512/p/5985239.html 最早出现的问题情况是提供es的部门在es的外部封装了一个gateway做请求
中
转。 当我们转换到gateway上之后,发现了问题: 有的请求可以获取到数据,有的请求获取不到数据。 仔细分析了业务代码,抽取了一个出问题的业务请求,这个业务请求里面包含了多次对es的请求,只有最后一个es请求抛出异常,其...
php
返回
http
chunked
,POST请求到
PHP
7与
chunked
编码不正确返回结果
我从客户端(使用
curl
和自定义nodejs脚本测试)发送POST请求,没有正确回应响应。整个事情适用于
PHP
5.6。环境整个事情尽可能地减少:>一切运行在Vagrant VM Ubuntu 14.04 LTS> nginx 1.9.7 from
http
://nginx.org/packages/ubuntu/>
PHP
7 FPM从官方来源编译–disable-all –en...
ERR_INVALID_
CHUNKED
_ENCODING错误或
curl
: (18) transfer closed with outstanding read
data
remaining错误解决方案
ERR_INVALID_
CHUNKED
_ENCODING错误
curl
: (18) transfer closed with outstanding read
data
remaining错误 Failed to load
response
data
错误 最终解决方案 问题现象: 前端控制台报错:ERR_INVALID_
CHUNKED
_ENCODING报错处理 前端调试模式可以看到...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章