推荐答案
在 Go 语言中,可以使用 net/http 包来创建一个简单的 HTTP 服务器。以下是一个基本的示例代码:
// www.javascriptcn.com code example
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", helloHandler)
fmt.Println("Starting server on :8080...")
if err := http.ListenAndServe(":8080", nil); err != nil {
fmt.Println("Error starting server:", err)
}
}本题详细解读
1. 导入必要的包
首先,我们需要导入 net/http 包来处理 HTTP 请求和响应,以及 fmt 包来格式化输出。
import (
"fmt"
"net/http"
)2. 定义处理函数
接下来,我们定义一个处理函数 helloHandler,它接收两个参数:http.ResponseWriter 和 *http.Request。http.ResponseWriter 用于向客户端发送响应,而 *http.Request 包含了客户端请求的所有信息。
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}3. 注册路由和处理函数
在 main 函数中,我们使用 http.HandleFunc 将根路径 / 与 helloHandler 函数绑定。这意味着当客户端访问根路径时,helloHandler 函数将被调用。
http.HandleFunc("/", helloHandler)4. 启动服务器
最后,我们使用 http.ListenAndServe 启动服务器,并指定监听的端口号为 8080。如果服务器启动失败,ListenAndServe 会返回一个错误,我们可以捕获并打印这个错误。
fmt.Println("Starting server on :8080...")
if err := http.ListenAndServe(":8080", nil); err != nil {
fmt.Println("Error starting server:", err)
}5. 运行服务器
将上述代码保存为一个 .go 文件(例如 main.go),然后在终端中运行:
go run main.go
服务器启动后,你可以在浏览器中访问 http://localhost:8080,页面将显示 "Hello, World!"。