服务端
package main
import (
"fmt"
"net/http"
)
func Handler(writer http.ResponseWriter, request *http.Request) {
fmt.Println(request.RemoteAddr, "连接成功")
// 请求方式:GET POST DELETE PUT UPDATE
fmt.Println("method:", request.Method)
// 访问/go
fmt.Println("url:", request.URL.Path)
fmt.Println("header:", request.Header)
fmt.Println("body:", request.Body)
// 回复
writer.Write([]byte("hello http"))
}
func main() {
http.HandleFunc("/go", Handler)
// addr:监听的地址
// handler:回调函数
fmt.Println("http server running: 0.0.0.0:8080")
err := http.ListenAndServe("0.0.0.0:8080", nil)
if err != nil {
fmt.Println(err)
return
}
}
客户端
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
get, err := http.Get("http://localhost:8080/go")
if err != nil {
fmt.Println(err)
}
defer get.Body.Close()
// 状态码
fmt.Println(get.Status)
fmt.Println(get.Header)
var buf [1024]byte
for {
n, err := get.Body.Read(buf[:])
if err != nil && err != io.EOF {
fmt.Println(err)
return
} else {
res := string(buf[:n])
fmt.Println(res)
break
}
}
}
输出
// 服务端输出
[::1]:56284 连接成功
method: GET
url: /go
header: map[Accept-Encoding:[gzip] User-Agent:[Go-http-client/1.1]]
body: {}
// 客户端输出
200 OK
map[Content-Length:[10] Content-Type:[text/plain; charset=utf-8] Date:[Sun, 01 May 2022 17:17:57 GMT]]
hello http