go语言 w http.ResponseWriter怎么获取返回的状态码?
在Go语言中,http.ResponseWriter
接口并没有直接提供获取返回状态码的方法。状态码是在HTTP响应的处理过程中设置的,通常是在调用http.ResponseWriter
的WriteHeader
方法时设置的。
下面是如何获取返回状态码的详细步骤:
设置状态码: 在处理HTTP请求时,可以通过调用
WriteHeader
方法来设置状态码。例如:gofunc handler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) // 设置状态码为200 OK // 其他操作 }
获取状态码: 要获取已设置的状态码,可以在调用
WriteHeader
后立即获取,或者使用http.ResponseWriter
的底层方法:- 直接获取:go
func handler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) status := w.(*http.response).status // 使用类型断言获取状态码 // 处理状态码 }
- 使用底层方法:
如果需要更复杂的状态码访问,可以使用
http.ResponseWriter
的底层Write
方法,它返回的是写入的字节数和可能的错误。通过这种方式,可以直接操作响应体,并获取最终的状态码。
- 直接获取:
通过上述方法,可以有效地在Go语言中获取并操作HTTP响应的状态码。