你不能 您可以在net / http源中找到它,只有在请求格式错误时才会发生:
https://github.com/golang/go/blob/master/src/net/http/server.go#L1744
我认为您的问题可能是您要在curl中添加的标题中的新行?
您可以使用json响应401、403、404、500错误,但是错误的请求或错误的标头(太长,格式错误)在server.go中处理。
尽管正在考虑中,但目前尚无办法拦截此类错误,因此您唯一的解决方案是修补stdlib源代码(我不建议这样做)。但是,由于此错误仅在客户端犯了一个错误并且请求格式错误时才会出现,因此这可能不是一个大问题。文本响应的原因是,浏览器或类似客户端(例如不带-
v的curl)不会仅看到空响应。您可以在应用程序前面放置一个像nginx这样的代理,但是由于它是一个不好的请求,所以您永远也看不到该请求,您的代理会处理它。
也许您可以使用像nginx这样的代理服务器来实现,尽管如果您为其设置了一个特定的静态错误页面来处理400个错误并提供了您指定的400.json文件呢?这是我能想到的唯一解决方案。像这样的指令可能适用于Nginx:
error_page 400 /400.json;
如果您希望能够自定义这些错误,则可以在链接的问题上添加注释,以使他们知道您遇到了此特定问题。



