go语言实现简单的http客户端与服务器
服务器代码
package main
import (
"fmt"
"net/http"
)
func main(){
//注册粗婚礼函数,用户连接,自动调用指定的处理函数
http.HandleFunc("/",HandConn)
//监听绑定
http.ListenAndServe(":8080",nil)
}
//w,给客户端回复数据
//req,读取客户端发送的数据
func HandConn(w http.ResponseWriter,req *http.Request){
w.Write([]byte("hello go"))
fmt.Println("req.Method = ",req.Method)
fmt.Println("req.Header = ",req.Header)
fmt.Println("req.URL = ",req.URL)
fmt.Println("req.Body = ",req.Body)
}
客户端代码
package main
import (
"fmt"
"net/http"
)
func main(){
resp,err := http.Get("http://www.ytu.edu.cn")
if err != nil{
fmt.Println("http.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中的数据,body为IO
buf := make([]byte,1024*4)
var tmp string
for{
n,err1 := resp.Body.Read(buf)
if n == 0 {
fmt.Println("resp.Body.Read err:",err1)
fmt.Println("ok")
break
}
tmp += string(buf[:n])
}
fmt.Println("tmp = ",tmp)
}
版权声明:本文为weixin_42094659原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。