专栏首页热爱ITGin框架-[WARNING] Headers were already written. Wanted to override status code 400 with 200

Gin框架-[WARNING] Headers were already written. Wanted to override status code 400 with 200

Gin框架编写PUT接口使用BindJSON绑定参数报错,当结构体绑定参数有误时, 状态码为400,强制返回200,结果code还是400.

原因 : BindXXX方法都return c.MustBindWith(obj, binding.XXX)。如果绑定错误,则c.AbortWithError(http.StatusBadRequest, err).SetType(ErrorTypeBind)。这将响应状态码设置为400,并将Content-Type标题设置为text/plain; charset=utf-8。如果强制修改成200,就会警告[WARNING] Headers were already written. Wanted to override status code 400 with 200。

解决方法 : 绑定结构体的方法把BindJSON改为ShouldBind。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Gin 学习之绑定参数

    要将请求体绑定到结构体中,需要使用模型绑定。Gin 目前支持JSON、XML、YAML和标准表单值的绑定(foo=bar&boo=baz)。

    frank.
  • request和response接口

    热心的社会主义接班人
  • HTTP 故障图解指南

    网页打开某个网站,可以看到正常的内容,这个 HTTP Status code 是 200,没有显示在页面上。

    iMike
  • 使用Golang的Gin框架和vue编写web应用

    使用vue-cli脚手架快速构建一个vue项目。 注意:前提是需要node环境,并且有可用的npm源

    BGBiao
  • Avoiding UpdateData(ZZ)

    Microsoft does not adequately document the correct way to work ...

    步行者08
  • Volley从源码梳理主要工作流程简记

    重点来了。 这里开启了一个缓存调度线程CacheDispatcher,一个网络请求调度线程NetworkDispatcher。

    coderZhen
  • Instant Messaging for Business: Your 10 Best Options

    It's probably not a surprise to you, but you or our employees are probably alrea...

    Spanz
  • RFC2616-HTTP1.1-Header Field Definitions(头字段规定部分—单词注释版)

    zaking
  • 《dive into python3》 笔记摘录

    0、In Python 2, the / operator usually meant integer division, but you could make...

    s1mba

扫码关注云+社区

领取腾讯云代金券