dsa2c2255888 2019-06-05 02:48
浏览 97
已采纳

允许的内容类型超过:大猩猩中的application / json

Using the excellent Gorilla mux I have special handler for API requests using application/json as content-type:

apiRouter := router.PathPrefix("/api").Headers("Content-Type", "application/json").Subrouter()

However, some users like to provide more than just that string, i.e. application/json; charset=UTF-8. When this header value is set, the handler returns a 404.

What's the best way to handle this by allowing json and any charset specs?

  • 写回答

2条回答 默认 最新

  • dongzang5815 2019-06-17 19:01
    关注

    Here's how I did it:

    apiRouter := router.PathPrefix("/api").HeadersRegexp("Content-Type", fmt.Sprintf("%s.*", MIMEApplicationJSON)).Subrouter()
    

    Remember, you may apply routing at the actual end point rather than at the root level. For GET requests there would be no need to specify Content-Type, but for POST, you should check for one.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?