摘自:https://blog.csdn.net/weixin_43851310/article/details/88067629 (仅做个人备份,浏览请看原文
package main
import (
"fmt"
"net/http"
)
func main() {
//注册回调函数
http.HandleFunc("/hello", handler)
//绑定tcp监听地址,并开始接受请求,然后调用服务端处理程序来处理传入的连接请求。
//params:第一个参数 addr 即监听地址;第二个参数表示服务端处理程序,通常为nil
//当参2为nil时,服务端调用 http.DefaultServeMux 进行处理
http.ListenAndServe("127.0.0.1:8080", nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
//服务器控制台输出
fmt.Println("method = ", r.Method) //请求方法
fmt.Println("URL = ", r.URL) // 浏览器发送请求文件路径
fmt.Println("header = ", r.Header) // 请求头
fmt.Println("body = ", r.Body) // 请求包体
fmt.Println(r.RemoteAddr, "连接成功") //客户端网络地址
//返回客户端显示
w.Write([]byte("hello http server"))
}
浏览器请求:http://127.0.0.1:8080/hello 返回:
hello http server
其中:
func myHandler(w http.ResponseWriter, r * http.Request) 有两个参数:
w http.ResponseWriter 和 r *http.Request。
w用来“给客户端回发数据”。r 用来“接收客户端发送的数据”。