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

go programmingserver side programmingprogramming

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

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

通常,状态代码分为这五类。

  • 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("我们得到的状态码是:", resp.StatusCode)
}

输出

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

我们得到的状态码是: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("我们得到的状态代码是:", resp.StatusCode)
   fmt.Println("我们得到的状态码文本是:", http.StatusText(resp.StatusCode))
}

输出

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

我们得到的状态码是:200
我们得到的状态码文本是: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("我们得到的状态码是:", resp.StatusCode)
   fmt.Println("我们得到的状态码文本是:", http.StatusText(resp.StatusCode))
}

输出

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

我们得到的状态码是:404
我们得到的状态码文本是:Not Found

相关文章