首页 文章资讯内容详情

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

2026-06-02 1 花语

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

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

一般来说,状态码分为这五类。

1xx(信息)

2xx(成功)

3xx(重定向)

4xx(客户端错误)

5xx(服务器错误)

在本文中,我们将尝试获取两个或多个这些状态代码。

示例1

让我们从对google.comURL的基本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) }输出结果

如果我们在上面的代码上运行gorunmain.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)) }输出结果

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

我们得到的状态码是: 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)) }输出结果

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

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