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
		}
	}

}

  

posted @ 2021-11-01 16:35  专职  阅读(35)  评论(0编辑  收藏  举报