1、配置路由和启动服务
func main() {
// 路由
http.HandleFunc("/req/get", dealGetHandler)
http.HandleFunc("/req/post", dealPostHnandler)
//启动服务
http.ListenAndServe(":8005", nil)
/*
addr 当前server监听的端口号和ip地址
*/
}
2、get操作
func dealGetHandler(w http.ResponseWriter, r *http.Request) {
//解析请求的数据
query := r.URL.Query()
//1.1
if len(query["name"]) > 0 {
names := query["name"][0]
fmt.Println("names", names)
}
//1.2通过get取值
name2 := query.Get("name")
fmt.Println("--------", name2)
//直接返回数据
//w.Write([]byte("hello world"))
type Info struct {
Name string
Password string
Age int
}
u := Info{
Name: "1111",
Password: "112",
Age: 11,
}
json.NewEncoder(w).Encode(u)
}
3、post操作
func dealPostHnandler(w http.ResponseWriter, r *http.Request) {
bodyContent, _ := ioutil.ReadAll(r.Body)
//fmt.Printf("%T", bodyContent)
strData := string(bodyContent)
fmt.Println(strData)
type Info struct {
Name string `json:"name"`
}
var d Info
err := json.Unmarshal([]byte(strData), &d)
fmt.Println("....err", err)
fmt.Println(d.Name)
json.NewEncoder(w).Encode(d)
}