【发布时间】:2019-11-01 16:17:18
【问题描述】:
我需要在我的 Web 服务器的处理程序中自定义 HTTP 状态,但我发现 golang 似乎不支持完全自定义 HTTP 响应.. 例如:
w.WriteHeader(999)
这是curl 结果:
$ curl -vk -i localhost:9898/hello
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 9898 (#0)
> GET /hello HTTP/1.1
> Host: localhost:9898
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 999 status code 999
HTTP/1.1 999 status code 999
< Date: Wed, 19 Jun 2019 02:01:09 GMT
Date: Wed, 19 Jun 2019 02:01:09 GMT
< Content-Length: 0
Content-Length: 0
结果中的status code 似乎无法修改.. 但是,我想定义自己的状态,例如Bad Request: xxx。
有什么好主意吗?非常感谢!
【问题讨论】:
-
请记住,机器不打算使用状态文本,只使用数字代码。文本是为人类设计的。试图对文本做某事的程序违反了 RFC。
-
@MichaelHampton 我认为您不了解我真正需要和想要的内容。当然,状态文本是针对人类的。但是总有一些奇怪的要求,不是吗?无论如何,谢谢你的提醒。