ホームページ > バックエンド開発 > Golang > Golang がフロントエンドパラメータを受け取る方法

Golang がフロントエンドパラメータを受け取る方法

angryTom
リリース: 2020-03-18 13:46:10
オリジナル
5981 人が閲覧しました

Golang を使用して Web バックエンドを開発するには、フロントエンドからパラメーターを受け取り、それに応答する必要があります。では、Golang はどのようにしてフロントエンドからパラメーターを受け取るのでしょうか?一緒に見てみましょう。

Golang がフロントエンドパラメータを受け取る方法

Golang がフロントエンド パラメーターを受け取る方法

1. まず、Golang Web サービスを作成します。

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. 次に、axios ライブラリを使用してフロントエンドの get post リクエストを作成します (ご自身で導入してください)。

<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>
ログイン後にコピー

3. 次に、Golang で get post パラメーターを受け取ります。

1. Golang はフロントエンド GET リクエストのパラメーターを受け取ります

// 处理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)

    // ...
}
ログイン後にコピー

サーバーは次を出力します:

GET: id=1
ログイン後にコピー

2 、Golang はフロントエンド POST リクエストのパラメーターを受け取ります

// 引入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)

    // ...
}
ログイン後にコピー

サーバーは次のように出力します:

POST json: username=admin, password=123
ログイン後にコピー

Golang の知識をさらに知りたい場合は、お支払いください。 PHP 中国語 Web サイト golang チュートリアル コラムに注目してください。

以上がGolang がフロントエンドパラメータを受け取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート