【问题标题】:Gin-Gonic Content-Type restrictionGin-Gonic 内容类型限制
【发布时间】:2020-04-14 18:42:12
【问题描述】:

有一个用golang写的服务,使用gin-gonic框架。

我只想支持 application/json 作为一种 mime 类型,如果它始终使用 UTF-8 那就太好了。如果获取不同编码的值,服务的业务逻辑可能会中断。

编写一个自定义中间件来检查 Content-Type 标头是否具有值 "application/json; charset=utf-8" 并返回一些 4xx 状态是否是个好主意?

更新: 刚刚发现 ctx.ContentType() 没有返回标头的 charset 部分。有没有办法得到它?

【问题讨论】:

  • 是的,很好。

标签: go mime-types content-type go-gin


【解决方案1】:

没有什么能阻止您直接查看"Content-Type" http 标头,就像ctx.Request.Header.Get("Content-Type") 一样。

gin-gonic 提供了帮助器ContentType 方法,特别是对于查询“纯”mime 类型的传入数据而没有太多麻烦的相当常见的情况。

【讨论】:

  • 您能否在问题的主要部分添加一个答案,以便我接受答案?
  • 我不知道你的申请是关于什么的。一般来说,您似乎在谈论标准的“Accept-Charset”/406 机制,您可以在其他地方阅读。
  • 不完全是。 Accept-Charset 告诉客户端期望在响应中获得什么字符集。我宁愿验证客户端在请求中将所有内容作为 charset=utf-8 发送。
猜你喜欢
  • 2017-04-27
  • 1970-01-01
  • 2015-09-04
  • 2020-03-03
  • 2015-08-22
  • 2018-11-07
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多