首页新闻找找看学习计划

Http消息的结构疑问

0
[已解决问题] 解决于 2019-12-23 09:36

现在在维护一个.net2.0的项目,运行平台Windows xp。(.net从4.5开始才支持tls1.2。而.net4.5最低的系统要求是Windows vista)

程序需要通过tls1.2调用一个发送短信验证码的接口,经过百般查询,也没有找到能用的.net2.0环境下能用的框架。无奈只能通过tcp手动模拟https请求。

在开发过程中,发现接收到的http响应的格式大致如下

HTTP/1.1 200 
Server: nginx/1.10.3
Connection: keep-alive
Date: Sat, 21 Dec 2019 09:20:15 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked

51
{"errMsg":"发送失败:每小时最多能发送5条短信。","errorCode":"1"}
0

其他的我都能理解,有没有人知道消息体中开始的51和结尾的0是什么,有没有特殊含义?

有大神在吗?快帮帮小弟吧,感激不尽!

 

龙葛格的主页 龙葛格 | 小虾三级 | 园豆:712
提问于:2019-12-21 17:35
< >
分享
最佳答案
1

由于你传输编码是chunked方式。所以需要一个值表示body的长度,51就是body的内容的长度,0是结尾。

参考资料:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Transfer-Encoding

奖励园豆:5
blackheart | 老鸟四级 |园豆:3171 | 2019-12-21 17:56

开始的时候我也这里理解,后来发现下面的例子对不上,比如:

29

{"errMsg":"发送成功","errorCode":"0"}

0

消息体的长度明显大于29(不算29和0,长度应该是33)

龙葛格 | 园豆:712 (小虾三级) | 2019-12-21 18:03

@龙葛格: 16进制的,表示的是字节的长度,不是字符的个数。

blackheart | 园豆:3171 (老鸟四级) | 2019-12-21 18:04

@blackheart: 好的。谢谢

龙葛格 | 园豆:712 (小虾三级) | 2019-12-23 09:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册