Lorsque vous utilisez Golang pour développer un backend Web, vous devez recevoir les paramètres du front-end et répondre. Alors, comment Golang reçoit-il les paramètres du front-end ? Jetons un coup d’œil ensemble.
Comment Golang reçoit les paramètres front-end
1 Tout d'abord, créez un service Web Golang.
package main import ( "log" "fmt" "net/http" "html/template" ) // 返回静态页面 func handleIndex(writer http.ResponseWriter, request *http.Request) { t, _ := template.ParseFiles("index.html") t.Execute(writer, nil) } func main() { http.HandleFunc("/", handleIndex) fmt.Println("Running at port 3000 ...") err := http.ListenAndServe(":3000", nil) if err != nil { log.Fatal("ListenAndServe: ", err.Error()) } }
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> Golang GET&POST </body> </html>
2 Ensuite, écrivez la demande de publication frontale, en utilisant la bibliothèque axios, veuillez la présenter vous-même.
<script> axios.get('/testGet', { params: { id: 1, } }).then((response) => { console.log(response); }); // POST数据 const postData = { username: 'admin', password: '123', }; axios.post('/testPostJson', postData).then((response) => { console.log(response); }); </script>
3. Ensuite, implémentez simplement le paramètre get post dans Golang.
1. Golang reçoit les paramètres de la requête GET front-end
// 处理GET请求 func handleGet(writer http.ResponseWriter, request *http.Request) { query := request.URL.Query() // 第一种方式 // id := query["id"][0] // 第二种方式 id := query.Get("id") fmt.Printf("GET: id=%s\n", id) fmt.Fprintf(writer, `{"code":0}`) } func main() { // ... http.HandleFunc("/testGet", handleGet) // ... }
Le serveur s'imprime comme suit :
GET: id=1
2 , Golang reçoit les paramètres de la requête POST frontale
// 引入encoding/json包 import ( // ... "encoding/json" ) // 处理application/json类型的POST请求 func handlePostJson(writer http.ResponseWriter, request *http.Request) { // 根据请求body创建一个json解析器实例 decoder := json.NewDecoder(request.Body) // 用于存放参数key=value数据 var params map[string]string // 解析参数 存入map decoder.Decode(¶ms) fmt.Printf("POST json: username=%s, password=%s\n", params["username"], params["password"]) fmt.Fprintf(writer, `{"code":0}`) } func main() { // ... http.HandleFunc("/testPostJson", handlePostJson) // ... }
Le serveur imprime comme suit :
POST json: username=admin, password=123
Pour plus de connaissances sur Golang, veuillez payer attention au site PHP chinoistutoriel golangColonne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!