1. 程式人生 > 其它 >【Go】HTTP GET/POST/DELETE/UPDATE操作

【Go】HTTP GET/POST/DELETE/UPDATE操作

技術標籤: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!") } } }