阅读量:24
在 Ubuntu 中使用 Go 语言的 net/http 包来创建 HTTP 服务器和客户端非常简单。以下是一个基本的示例,展示了如何使用 net/http 包来创建一个简单的 HTTP 服务器,并在浏览器中访问它。
步骤 1: 安装 Go
首先,确保你已经在 Ubuntu 上安装了 Go。如果还没有安装,可以通过以下命令安装:
sudo apt update
sudo apt install golang-go
你可以通过运行 go version 来验证安装是否成功。
步骤 2: 创建一个简单的 HTTP 服务器
-
创建一个新的目录来存放你的 Go 代码:
mkdir ~/go-http-server cd ~/go-http-server -
使用你喜欢的文本编辑器(如
nano,vim, 或gedit)创建一个新的 Go 文件,例如main.go:nano main.go -
在
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) } } -
保存并关闭文件。
-
运行你的 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.Request。http.ResponseWriter用于写入响应,*http.Request包含请求的信息。fmt.Fprintf(w, "Hello, World!"):将 “Hello, World!” 写入响应。http.ListenAndServe(":8080", nil):在端口 8080 上启动 HTTP 服务器。nil表示使用默认的ServeMux。
创建 HTTP 客户端
你也可以使用 net/http 包来创建一个简单的 HTTP 客户端。以下是一个示例:
-
在
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)) } -
保存并关闭文件。
-
运行你的 Go 程序:
go run main.go你应该会看到输出 “Hello, World!”,这是从你的 HTTP 服务器获取的响应。
通过这些步骤,你可以在 Ubuntu 中使用 Go 语言的 net/http 包来创建和测试 HTTP 服务器和客户端。