HTTP请求

 

 

1. get请求

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "io/ioutil"
 6     "net/http"
 7     "os"
 8 )
 9 
10 func main() {
11 
12     resp, err := http.Get("https://baike.baidu.com/item/书/130176?fr=aladdin")
13     HandleError(err, "http.Get")
14 
15     defer resp.Body.Close()
16 
17     bytes, e := ioutil.ReadAll(resp.Body)
18     HandleError(e, "outil.ReadAll")
19 
20     fmt.Println("get:", string(bytes))
21 
22 }
23 
24 func HandleError(err error, when string) {
25     if err != nil {
26         fmt.Println(err, "net.Listen")
27         os.Exit(1)
28 
29     }
30 }

 

 

2. post请求

 

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "io/ioutil"
 6     "net/http"
 7     "os"
 8     "strings"
 9 )
10 
11 func main() {
12 
13     url := "https://httpbin.org/post?name=love"
14     //携带的数据类型,表单
15     resp, err := http.Post(url, "application/x-www-form-urlencoded", strings.NewReader("rmb=0.5&hobby=love"))
16     HandleError(err, "htp.post")
17     defer resp.Body.Close()
18 
19     bytes, e := ioutil.ReadAll(resp.Body)
20     HandleError(e, "ioutil.ReadAll")
21     fmt.Println(string(bytes))
22 
23 }
24 
25 func HandleError(err error, when string) {
26     if err != nil {
27         fmt.Println(err, "net.Listen")
28         os.Exit(1)
29 
30     }
31 }

 

3. 搭建http服务端

 1 package main
 2 
 3 import (
 4     "net/http"
 5     "strconv"
 6 )
 7 
 8 func main() {
 9 
10     //路由规则1
11     http.HandleFunc("/shit", func(writer http.ResponseWriter, request *http.Request) {
12         writer.Write([]byte("im ok!"))
13     })
14 
15     //路由规则2
16     http.HandleFunc("/hello", func(writer http.ResponseWriter, request *http.Request) {
17         writer.Write([]byte("请求的方法=" + request.Method))
18         writer.Write([]byte("请求的内容长度=" + strconv.Itoa(int(request.ContentLength))))
19         writer.Write([]byte("请求的主机=" + request.Host))
20         writer.Write([]byte("请求的协议=" + request.Proto))
21         writer.Write([]byte("请求的远程地址=" + request.RemoteAddr))
22         writer.Write([]byte("请求的路由=" + request.RequestURI))
23         writer.Write([]byte("朕已收到信息"))
24 
25     })
26 
27     //监听
28     http.ListenAndServe("0.0.0.0:8080", nil)
29 }

 

 

 

 

 

 

 

 

 

 

 

end

posted @ 2020-01-14 13:49  chaoyangxu  阅读(171)  评论(0编辑  收藏  举报