Maison > développement back-end > Golang > Comment Golang reçoit les paramètres front-end

Comment Golang reçoit les paramètres front-end

angryTom
Libérer: 2020-03-18 13:46:10
original
5959 Les gens l'ont consulté

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

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())
    }
}
Copier après la connexion

index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  Golang GET&POST
</body>
</html>
Copier après la connexion

2 Ensuite, écrivez la demande de publication frontale, en utilisant la bibliothèque axios, veuillez la présenter vous-même.

<script>
  axios.get(&#39;/testGet&#39;, {
    params: {
      id: 1,
    }
  }).then((response) => {
    console.log(response);
  });
  
  // POST数据
const postData = {
  username: &#39;admin&#39;,
  password: &#39;123&#39;,
};

axios.post(&#39;/testPostJson&#39;, postData).then((response) => {
  console.log(response);
});
</script>
Copier après la connexion

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)

    // ...
}
Copier après la connexion

Le serveur s'imprime comme suit :

GET: id=1
Copier après la connexion

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(&params)

    fmt.Printf("POST json: username=%s, password=%s\n", params["username"], params["password"])

    fmt.Fprintf(writer, `{"code":0}`)
}

func main() {
    // ...

    http.HandleFunc("/testPostJson", handlePostJson)

    // ...
}
Copier après la connexion

Le serveur imprime comme suit :

POST json: username=admin, password=123
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal