登录
首页 >  Golang >  Go问答

返回 200 状态代码尽管使用 WriteHeader 返回其他状态码

来源:stackoverflow

时间:2024-03-07 21:36:17 134浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《返回 200 状态代码尽管使用 WriteHeader 返回其他状态码》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我正在编写一个 post 端点,在错误处理中我想返回 400。

log.Println("Artifact post requested")
// Check for valid JSON Body
body, err := getJSONBody(r)
if err != nil {
  log.Println("we got an error")
  log.Println(err)
  w.WriteHeader(http.StatusBadRequest)
  return
}

func getJSONBody(r *http.Request) ([]byte, error) {
    if r.Body == nil {
        fmt.Println("body has issues")
        return nil, errors.New("Received an empty body")
    }
    defer r.Body.Close()

    // Read body
    body, readErr := ioutil.ReadAll(r.Body)
    if readErr != nil {
        return nil, readErr
    }
    return body, nil
}

但是当我运行单元测试时,我得到的是 200 而不是 400。你知道为什么会发生这种情况吗? 测试输出


解决方案


单元测试出了问题,多个请求失败,但单个请求通过(得到了我正在寻找的 400)。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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