温馨提示×

golang在ubuntu中如何使用net/http包

小樊
48
2025-11-11 01:09:32
栏目: 编程语言

在 Ubuntu 中使用 Go 语言的 net/http 包来创建 HTTP 服务器和客户端非常简单。以下是一个基本的示例,展示了如何使用 net/http 包来创建一个简单的 HTTP 服务器,并在浏览器中访问它。

步骤 1: 安装 Go

首先,确保你已经在 Ubuntu 上安装了 Go。如果还没有安装,可以通过以下命令安装:

sudo apt update
sudo apt install golang-go

你可以通过运行 go version 来验证安装是否成功。

步骤 2: 创建一个简单的 HTTP 服务器

  1. 创建一个新的目录来存放你的 Go 代码:

    mkdir ~/go-http-server
    cd ~/go-http-server
    
  2. 使用你喜欢的文本编辑器(如 nano, vim, 或 gedit)创建一个新的 Go 文件,例如 main.go

    nano main.go
    
  3. main.go 文件中输入以下代码:

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
    )
    
    func main() {
        http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
            fmt.Fprintf(w, "Hello, World!")
        })
    
        log.Println("Starting server at port 8080")
        if err := http.ListenAndServe(":8080", nil); err != nil {
            log.Fatal(err)
        }
    }
    
  4. 保存并关闭文件。

  5. 运行你的 Go 程序:

    go run main.go
    

    你应该会看到类似以下的输出:

    Starting server at port 8080
    

步骤 3: 访问 HTTP 服务器

打开你的浏览器,访问 http://localhost:8080。你应该会看到页面上显示 “Hello, World!”。

解释

  • http.HandleFunc("/", handler):将根路径 / 的请求处理函数设置为 handler
  • handler 函数接受两个参数:http.ResponseWriter*http.Requesthttp.ResponseWriter 用于写入响应,*http.Request 包含请求的信息。
  • fmt.Fprintf(w, "Hello, World!"):将 “Hello, World!” 写入响应。
  • http.ListenAndServe(":8080", nil):在端口 8080 上启动 HTTP 服务器。nil 表示使用默认的 ServeMux

创建 HTTP 客户端

你也可以使用 net/http 包来创建一个简单的 HTTP 客户端。以下是一个示例:

  1. main.go 文件中添加以下代码:

    package main
    
    import (
        "fmt"
        "io/ioutil"
        "net/http"
    )
    
    func main() {
        resp, err := http.Get("http://localhost:8080")
        if err != nil {
            fmt.Println("Error:", err)
            return
        }
        defer resp.Body.Close()
    
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            fmt.Println("Error:", err)
            return
        }
    
        fmt.Println(string(body))
    }
    
  2. 保存并关闭文件。

  3. 运行你的 Go 程序:

    go run main.go
    

    你应该会看到输出 “Hello, World!”,这是从你的 HTTP 服务器获取的响应。

通过这些步骤,你可以在 Ubuntu 中使用 Go 语言的 net/http 包来创建和测试 HTTP 服务器和客户端。

0