当前位置: 代码迷 >> 综合 >> http协议(golang)
  详细解决方案

http协议(golang)

热度:102   发布时间:2023-10-13 09:39:04.0

net/http包提供了HTTP客户端和服务端的实现。

  1. Http服务端
package mainimport ("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.HandleFunc-注册回调函数
http.ListenAndServe-监听请求和服务

浏览器请求结果
http协议(golang)

  1. Http客户端
package mainimport("fmt""io/ioutil""net/http"
)func main() {// 使用Get方法获取服务器响应包数据resp, err := http.Get("http://127.0.0.1:8080/hello")if err != nil {fmt.Println("Get err:", err)return}defer resp.Body.Close()// 获取服务器端读到的数据fmt.Println("Status = ", resp.Status)         // 状态fmt.Println("StatusCode = ", resp.StatusCode) // 状态码fmt.Println("Header = ", resp.Header)         // 响应头部fmt.Println("Body = ", resp.Body)             // 响应包体//读取body内的内容content, err := ioutil.ReadAll(resp.Body)// 打印从body中读到的所有内容fmt.Println("result = ", string(content))
}

content, err := ioutil.ReadAll(resp.Body)//解析字段

  相关解决方案