在Golang中web开发中net/http是经常用到的包,在这个包中包含了各种请求与响应的方式,下面我会一一进行介绍。
关键词:golang
GET请求
不带参数的GET请求
直接使用http.Get()函数,返回一个*http.Response类型的变量,使用os.ReadAll(resp.Body)会读取相应后内容
1 2 3 4 5 6 7 8 9 10 11 12
| func SendSimpleGetRequest() { response, err := http.Get("https://www.baidu.com") if err != nil { panic(err) } defer response.Body.Close() s, err := io.ReadAll(response.Body) fmt.Println(string(s)) if err != nil { panic(err) } }
|
携带参数的GET请求
使用url.Values{}返回一个map[string][]string类型,不推荐直接在url地址中携带。
可以使用params.Encode()对中文进行编码,防止数据在传输过程中出错。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| func SendComplexGetRequest() { params := url.Values{} urlObj, err := url.Parse("http://www.baidu.com") if err != nil { panic(err) } params.Set("a", "afds") params.Set("id", string("1"))
urlObj.RawQuery = params.Encode() urlPath := urlObj.String() resp, err := http.Get(urlPath) if err != nil { panic(err) } defer resp.Body.Close() response, err := io.ReadAll(resp.Body) fmt.Printf("response: %s\n", response) if err != nil { panic(err) } }
|
Post 请求
Post请求:application/x-www-form-urlencoded
这应该是最常见的 POST 提交数据的方式了。浏览器的原生