在 Ubuntu 中使用 Go 语言的 net/http 包来创建 HTTP 服务器和客户端非常简单。以下是一个基本的示例,展示了如何使用 net/http 包来创建一个简单的 HTTP 服务器,并在浏览器中访问它。
首先,确保你已经在 Ubuntu 上安装了 Go。如果还没有安装,可以通过以下命令安装:
sudo apt update
sudo apt install golang-go
你可以通过运行 go version 来验证安装是否成功。
创建一个新的目录来存放你的 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
打开你的浏览器,访问 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。你也可以使用 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 服务器和客户端。