func main() {
http.HandleFunc("/test1",test1)
http.HandleFunc("/t_test1",t_test1)
http.ListenAndServe("0.0.0.0:9999",nil)
}
func t_test1(res http.ResponseWriter,req *http.Request) {
//构造URL
sendUrl,_:=url.Parse("http://localhost:9999/test1?")
//添加Values键值对
val:=sendUrl.Query()
val.Set("name","safly")
val.Add("name","saflyer")
val.Set("sex","man")
//添加RawQuery
sendUrl.RawQuery = val.Encode()
//发起请求
resp,err:=http.Get(sendUrl.String())
if err != nil || resp.StatusCode != http.StatusOK{
fmt.Println("get fail:", err)
return
}
defer resp.Body.Close()
//读取响应
body,err:=ioutil.ReadAll(resp.Body)
if err!= nil{
fmt.Println("read body fail")
return
}
fmt.Println(string(body))
}
func test1(res http.ResponseWriter,req *http.Request) {
req.ParseForm()
for k,v:=range req.Form{
fmt.Print(k,v)
}
fmt.Fprint(res, "It works")
}
通过curl -X GET 'http://localhost:9999/t_test1'
执行请求测试,输出如下:
name[safly saflyer]sex[man]It works
func main() {
http.HandleFunc("/post",post)
http.HandleFunc("/t_post",t_post)
http.ListenAndServe("0.0.0.0:9999",nil)
}
func t_post(res http.ResponseWriter,req *http.Request) {
//构造URL
sendUrl:="http://localhost:9999/post?"
user:= struct {
Name string
Sex string
}{"safly","man"}
body,_:=json.Marshal(user)
resp,_:= http.Post(sendUrl,"application/x-www-form-urlencoded",strings.NewReader(string(body)))
//解析响应数据
defer resp.Body.Close()
b,_:= ioutil.ReadAll(resp.Body)
fmt.Println(string(b))
}
func post(res http.ResponseWriter,req *http.Request) {
//读取body
body,_:= ioutil.ReadAll(req.Body)
strBody:= string(body)
fmt.Println("bodyStr",strBody)
userT:= struct {
Name string
Sex string
}{}
json.Unmarshal(body,&userT)
fmt.Fprint(res,userT.Name,userT.Sex)
}
通过curl -X POST 'http://localhost:9999/t_post'
执行请求测试,输出如下:
bodyStr {"Name":"safly","Sex":"man"}
saflyman
func main() {
http.HandleFunc("/post",post)
http.HandleFunc("/t_post",t_post)
http.ListenAndServe("0.0.0.0:9999",nil)
}
func post(w http.ResponseWriter,r *http.Request) {
r.ParseForm()
fmt.Println(r.Form["name"])
fmt.Println(r.Form["sex"])
//返回数据
fmt.Fprint(w, "Post is works")
}
func t_post(res http.ResponseWriter,req *http.Request) {
u, err := url.Parse("http://localhost:9999/post?")
if err != nil {
fmt.Println("parse is fail")
return
}
q := u.Query()
q.Set("name", "salfy")
q.Add("name","saflyer")
q.Set("sex", "男")
//发起post表单请求
resp, err1 := http.PostForm(u.String(), q)
if err1 != nil {
fmt.Println("post fail")
return
}
//解析响应
defer resp.Body.Close()
body, err2 := ioutil.ReadAll(resp.Body)
if err2 != nil{
fmt.Println("body fail")
return
}
fmt.Println(string(body))
}
通过curl -X POST 'http://localhost:9999/t_post'
执行请求测试,输出如下:
[salfy saflyer]
[男]
Post is works