在Golang中如何实现一个简单的HTTP服务器,并响应GET请求?
在Golang中实现一个简单的HTTP服务器可以使用标准库`net/http`。以下是一个基本示例:
1. 引入必要的包:
```go
package main
import (
"fmt"
"net/http"
)
```
2. 创建一个处理函数,用于响应HTTP请求。在本例中,处理函数会处理根目录的GET请求:
```go
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
fmt.Fprintf(w, "Hello, you've requested: %s
", r.URL.Path)
} else {
http.Error(w, "Invalid request method", http.StatusMethodNotAllowed)
}
}
```
3. 设置HTTP服务器并监听端口:
```go
func main() {
http.HandleFunc("/", handler) // 将根URL与处理函数关联
fmt.Println("Starting server at port 8080")
if err := http.ListenAndServe(":8080", nil); err != nil {
fmt.Println(err)
}
}
```
完整代码让一个HTTP服务器在端口8080启动,会处理到达根路径的GET请求,并返回请求的路径信息。如果遇到非GET请求,则返回一个错误。
运行此代码后,可以在浏览器输入`http://localhost:8080`来查看结果。如果请求的是其他路径,比如`http://localhost:8080/test`,服务器将响应`Hello, you've requested: /test`。
这样,你就实现了一个简单的Golang HTTP服务器。
1. 引入必要的包:
```go
package main
import (
"fmt"
"net/http"
)
```
2. 创建一个处理函数,用于响应HTTP请求。在本例中,处理函数会处理根目录的GET请求:
```go
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
fmt.Fprintf(w, "Hello, you've requested: %s
", r.URL.Path)
} else {
http.Error(w, "Invalid request method", http.StatusMethodNotAllowed)
}
}
```
3. 设置HTTP服务器并监听端口:
```go
func main() {
http.HandleFunc("/", handler) // 将根URL与处理函数关联
fmt.Println("Starting server at port 8080")
if err := http.ListenAndServe(":8080", nil); err != nil {
fmt.Println(err)
}
}
```
完整代码让一个HTTP服务器在端口8080启动,会处理到达根路径的GET请求,并返回请求的路径信息。如果遇到非GET请求,则返回一个错误。
运行此代码后,可以在浏览器输入`http://localhost:8080`来查看结果。如果请求的是其他路径,比如`http://localhost:8080/test`,服务器将响应`Hello, you've requested: /test`。
这样,你就实现了一个简单的Golang HTTP服务器。
若文章对您有帮助,帮忙点个赞!
(微信扫码即可登录,无需注册)