go语言 w http.ResponseWriter怎么获取返回的状态码?

在Go语言中,http.ResponseWriter接口并没有直接提供获取返回状态码的方法。状态码是在HTTP响应的处理过程中设置的,通常是在调用http.ResponseWriterWriteHeader方法时设置的。

下面是如何获取返回状态码的详细步骤:

  1. 设置状态码: 在处理HTTP请求时,可以通过调用WriteHeader方法来设置状态码。例如:

    go
    func handler(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) // 设置状态码为200 OK // 其他操作 }
  2. 获取状态码: 要获取已设置的状态码,可以在调用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响应的状态码。