http服务
447字约1分钟
2025-02-04
客户端
下面是一个简单的使用Go语言中的net/http包创建HTTP客户端的示例
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
// 创建一个HTTP客户端
client := &http.Client{}
// 创建一个GET请求
resp, err := client.Get("http://www.baidu.com")
if err != nil {
fmt.Println("请求失败:", err)
return
}
defer resp.Body.Close()
// 获取响应的状态码
statusCode := resp.StatusCode
fmt.Println("状态码:", statusCode)
// 获取响应头
headers := resp.Header
fmt.Println("响应头:", headers)
// 读取响应内容
body, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Println("读取响应失败:", err)
return
}
// 打印响应内容
fmt.Println("响应内容:", string(body))
}
服务端
下面是一个简单的使用Go语言中的net/http包创建HTTP服务端的示例:
这个示例中,我们首先定义了一个处理函数helloHandler,它接收一个http.ResponseWriter和一个http.Request参数。http.ResponseWriter用于构造响应,http.Request包含了客户端的请求信息。
在helloHandler函数中,我们使用fmt.Fprintf将响应内容写入w,也就是http.ResponseWriter。
然后,我们在main函数中注册了这个处理函数,将其与路径/hello关联。最后,我们使用http.ListenAndServe启动服务器,监听8080端口。
当你运行这个程序,并且使用浏览器或者其他工具访问http://localhost:8080/hello,你应该能看到Hello, world!的响应。
这只是一个简单的开始,实际应用中可能需要处理更复杂的情况,例如错误处理、解析请求参数、返回不同类型的响应等。
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
// 写入响应内容
fmt.Fprintf(w, "Hello, world!")
}
func main() {
// 注册路由和处理函数
http.HandleFunc("/hello", helloHandler)
// 启动HTTP服务器,监听8080端口
err := http.ListenAndServe(":8080", nil)
if err != nil {
fmt.Println("服务器启动失败:", err)
}
}