【Go】HTTP GET/POST/DELETE/UPDATE操作
阿新 • • 發佈:2021-01-13
技術標籤:Go
最近實習要用工具完成一個增刪改查的demo,demo做好了,發現不會提交請求,只好去學一下http的內容;
下面直接放程式碼,包括了4中型別分別怎麼提交的程式碼。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strconv"
"strings"
)
func user_insert(name string){
url := "http://127.0.0.1:8080/user/insert"
contentType := "application/json"
data := `{"name":"`+name+`"}`
resp, err := http.Post(url, contentType, strings.NewReader(data))
if err != nil {
fmt.Printf("post failed, err: %v \n",err)
return
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Printf("get resp failed, err:%v \n", err)
return
}
fmt.Println(string(b))
}
func user_delete(id int){
userid := strconv.Itoa(id)
url := "http://127.0.0.1:8080/user/del/" + userid
req, err := http.NewRequest("DELETE", url, nil)
if err != nil {
fmt.Printf("NewRequest failed, err: %v \n" ,err)
return
}
res, err := http.DefaultClient.Do(req)
if err != nil {
fmt.Printf("DefaultClient failed, err: %v \n",err)
return
}
defer res.Body.Close()
b, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Printf("get res failed, err:%v \n", err)
return
}
fmt.Println(string(b))
}
func user_query(id int){
userid := strconv.Itoa(id)
url := "http://127.0.0.1:8080/user/query?id=" + userid
resp, err := http.Get(url)
if err != nil {
fmt.Printf("post failed, err: %v \n",err)
return
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Printf("get resp failed, err:%v \n", err)
return
}
fmt.Println(string(b))
}
func user_update(id int, name string){
userid := strconv.Itoa(id)
url := "http://127.0.0.1:8080/user/update/" + userid
data := `{"name":"`+name+`"}`
req, err := http.NewRequest("PUT", url, strings.NewReader(data))
if err != nil {
fmt.Printf("NewRequest failed, err: %v \n",err)
return
}
res, err := http.DefaultClient.Do(req)
if err != nil {
fmt.Printf("DefaultClient failed, err: %v \n",err)
return
}
defer res.Body.Close()
b, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Printf("get res failed, err:%v \n", err)
return
}
fmt.Println(string(b))
}
func main(){
var operating string
loop:
for{
fmt.Println("please choose your operation: insert,delete,query,update")
fmt.Println("enter quit to break")
fmt.Scanf("%s", &operating)
switch operating{
case "insert":
var username string
fmt.Println("please enter the user_name:")
fmt.Scanf("%s", &username)
user_insert(username)
case "delete":
var userid int
fmt.Println("please enter the user_id:")
fmt.Scanf("%d", &userid)
user_delete(userid)
case "query":
var userid int
fmt.Println("please enter the user_id:")
fmt.Scanf("%d", &userid)
user_query(userid)
case "update":
var userid int
var username string
fmt.Println("please enter the user_id and user_name:")
fmt.Scanf("%d %s", &userid, &username)
user_update(userid, username)
case "quit":
break loop
default:
fmt.Println("error, please enter the right operation!")
}
}
}