golang中http编程
1. http server
package main
import (
"fmt"
"net/http"
)
func main() {
// 请求url和对应处理函数
http.HandleFunc("/hello", myHandleFunc)
// 开启服务
http.ListenAndServe("127.0.0.1:8080", nil)
}
func myHandleFunc(w http.ResponseWriter, r *http.Request) {
fmt.Println(r.RemoteAddr, "链接成功")
fmt.Println(r.Method, r.URL.Path)
fmt.Println(r.Header)
fmt.Println(r.Body)
// 回复
var buf = []byte("hello 马亚南, 这是服务器发送给你的消息")
w.Write(buf)
}
2. http client
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
// http客户端
resp, _ := http.Get("http://127.0.0.1:8080/hello")
defer resp.Body.Close()
fmt.Println(resp.Status)
fmt.Println(resp.Header)
buf := make([]byte, 1024)
for {
// 接收服务端消息
n, err := resp.Body.Read(buf)
if err != nil && err != io.EOF {
fmt.Println(err)
return
} else {
fmt.Println("读取完毕")
ret := string(buf[:n])
fmt.Println(ret)
break
}
}
}

浙公网安备 33010602011771号