Golang HTTP Post 丢数据的问题

2020-05-07 20:09:02 +08:00
 winterssy
使用 Gin 开发的服务端程序,部署在海外 vps 上。在本地并发向服务器发送 JSON Post 请求,服务器读取 Request Body 的时候偶尔会出现丢失后面 20 字节数据(这个数字不是随机的,要么不少,一少就是 20 个字节,每次测试都一样)的现象,服务器读取到的 Content-Length 也跟实际的不一样(少 20 个字节),就像我发的数据就比原来少 20 字节一样,服务端读取时没有任何报错。单线程循环逐一发请求的话正常,本地环境测试并发也没有问题,有 v 友知道这是什么原因造成的吗?还是说因为服务器离的比较远,有办法解决么?
1550 次点击
所在节点    问与答
7 条回复
FutherAll
2020-05-07 20:19:12 +08:00
content-length 带在 request header 上的吗?
winterssy
2020-05-07 20:29:54 +08:00
@FutherAll #1 不是,Golang 的 net/http 会默认自动设置 Content-Length 的,后面我自己手动在 Header 加上 Content-Length 也测试了一遍,但服务端读取到的并不是我设置的值,跟没手动设置 Header 一样,少 20 个字节
Jirajine
2020-05-07 20:35:26 +08:00
抓包看看实际发出的请求是多少
FutherAll
2020-05-07 20:38:06 +08:00
FutherAll
2020-05-07 20:41:18 +08:00
FutherAll
2020-05-07 20:41:34 +08:00
是不是读到 eof 了
nazor
2020-05-07 20:49:27 +08:00
TCP 头 20 字节

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/669409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX