如何在 Golang 中获取响应状态码?


响应状态码是在我们收到响应时获得的数字,它表示当我们向服务器请求某些内容时,我们从服务器收到的响应类型。

从响应中可以获得不同的状态码,这些状态码主要分为五类。

通常,状态码被分为以下五类。

  • 1xx (信息类)

  • 2xx (成功类)

  • 3xx (重定向类)

  • 4xx (客户端错误类)

  • 5xx (服务器错误类)

在这篇文章中,我们将尝试获取其中两个或多个状态码。

示例 1

让我们从对 **google.com** URL 的基本 HTTP 请求开始。完成后,我们将从服务器获取响应,该响应将包含状态码。

请考虑以下代码。

package main

import (
   "fmt"
   "log"
   "net/http"
)

func main() {
   resp, err := http.Get("https://www.google.com")
   if err != nil {
      log.Fatal(err)
   }

   fmt.Println("The status code we got is:", resp.StatusCode)
}

输出

如果我们在上述代码上运行命令 **go run main.go**,那么我们将在终端中获得以下输出。

The status code we got is: 200

示例 2

每个状态码还包含一个 **StatusText**,我们也可以使用 **statusCode** 打印它。

请考虑以下代码。

package main

import (
   "fmt"
   "log"
   "net/http"
)

func main() {
   resp, err := http.Get("https://www.google.com")
   if err != nil {
      log.Fatal(err)
   }

   fmt.Println("The status code we got is:", resp.StatusCode)
   fmt.Println("The status code text we got is:", http.StatusText(resp.StatusCode))
}

输出

如果我们在上述代码上运行命令 **go run main.go**,那么我们将在终端中获得以下输出。

The status code we got is: 200
The status code text we got is: OK

示例 3

我们能够获取状态码 200,因为该 URL 在当时可用。如果我们对一个未激活的 URL 发出请求,我们将收到 404 状态码。

请考虑以下代码。

package main

import (
   "fmt"
   "log"
   "net/http"
)

func main() {
   resp, err := http.Get("https://www.google.com/apple")
   if err != nil {
      log.Fatal(err)
   }

   fmt.Println("The status code we got is:", resp.StatusCode)
   fmt.Println("The status code text we got is:", http.StatusText(resp.StatusCode))
}

输出

如果我们在上述代码上运行命令 **go run main.go**,那么我们将在终端中获得以下输出。

The status code we got is: 404
The status code text we got is: Not Found

更新于: 2021年11月1日

13K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告