#1 简单的get请求
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
resp, err := http.Get("https://juejin.cn/")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
#2 get请求带参数
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
)
func main() {
query := "golang gin"
type := 0
params := "query=" + url.QueryEscape(query) + "&" +
"type=" + url.QueryEscape(type)
path := fmt.Sprintf("https://juejin.cn/search?%s", params)
resp, err := http.Get(path)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
#3 表单参数post请求
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
"net/url"
)
func main() {
data := url.Values{
"name": {"John Doe"},
"occupation": {"gardener"},
}
resp, err := http.PostForm("https://httpbin.org/post", data)
if err != nil {
log.Fatal(err)
}
var res map[string]interface{}
json.NewDecoder(resp.Body).Decode(&res)
fmt.Println(res["form"])
}
#4 json参数post请求
package main
import (
"bytes"
"encoding/json"
"fmt"
"log"
"net/http"
)
func main() {
values := map[string]string{"name": "John Doe", "occupation": "gardener"}
json_data, err := json.Marshal(values)
if err != nil {
log.Fatal(err)
}
resp, err := http.Post("https://httpbin.org/post", "application/json",
bytes.NewBuffer(json_data))
if err != nil {
log.Fatal(err)
}
var res map[string]interface{}
json.NewDecoder(resp.Body).Decode(&res)
fmt.Println(res["json"])
}