新手 求助(关于net/http包request对象请求体内容解析字节丢失问题)

Septemberrrrrr · · 1936 次点击
如果客户端发送的不完整,服务端会阻塞在 `n, err := bufReader.Read(data)` 这里,直至读取到完整字节,或者客户端关闭了,或者是 `ReadTimeout` 超时。UP 要贴上 `err` 的错误信息。如果读取的字节数不够 `ContentLength`,read 又没错误,那就奇了怪了
#6
更多评论
data := make([]byte, r.ContentLength + 200) 解决
#1
1楼 <a href="/user/a984120978" title="@a984120978">@a984120978</a> ``` func webhook(w http.ResponseWriter, r *http.Request) { bufReader := bufio.NewReader(r.Body) defer r.Body.Close() data := make([]byte, r.ContentLength+200) n, err := bufReader.Read(data) fmt.Println(&#34;总长度为&#34;, r.ContentLength) fmt.Println(&#34;定义的buff长度&#34;, len(data)) fmt.Println(&#34;读取的长度&#34;, n) if err != nil { fmt.Println(&#34;Error reading request body:&#34;, err) return } } ``` 输出: ``` 总长度为 5900 定义的buff长度 6100 读取的长度 3759 ``` 我不理解,为什么实际读取的数据和ContentLength的长度不一致
#2