登录
首页 >  Golang >  Go问答

接收 POST 请求数据

来源:stackoverflow

时间:2024-03-10 11:00:26 279浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《接收 POST 请求数据》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我构建了一个具有很少端点的服务器,在其中一个端点中,我在帖子正文中获取日志,并在授权标头中获取 jwt 令牌。在此 api 中,我解析令牌、验证它,然后获取正文。它是工作文件,但有时我在阅读正文时会遇到这些错误:

  • 客户端已断开连接
  • 流错误:流 id 3;取消

阅读正文:

body, err := ioutil.readall(r.body) // r *http.request

为什么我会收到这些错误以及如何解决它们?谢谢

编辑:端点处理程序

func logs(w http.ResponseWriter, r *http.Request) {
    var auth classes.AuthToken
    // Validate token and get the needed data from it
    if err := dbAndAuth.ValTokAndGetD(r, &auth, tokenKey); err != nil {
        if err != nil {
            if err.Error() == "" {
                classes.LogError(false, "got an empty error")
            }
            errD := classes.Resp{
                Success: false,
                Message: err.Error(),
                ErrCode: http.StatusUnauthorized,
            }
            json.NewEncoder(w).Encode(errD)
            return
        }
    }

    body, err := ioutil.ReadAll(r.Body) // Got the error here
    // parse the body to get the data

正确答案


如果没有看到其余的代码,就很难回答,但可能的答案是流在全部被读取之前就被关闭了。

这可能是由于主体被关闭(或任何其他手动提前关闭的方式)。

或者解析正在一个单独的例程中运行,在请求完成之前,该例程没有机会在 [缓冲?] 通道中完成并响应。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《接收 POST 请求数据》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>