1
0

More than 1 year has passed since last update.

# 【Go】Getパラメータを取得する

Posted at

以下のリクエストを送って、「サンプル」という文字列を取得したいと思います。

http://localhost:8080/insert?content=サンプル

コード

package main

import (
    "log"
    "net/http"
)

func main() {
    handler := func(w http.ResponseWriter, req *http.Request) {
        putList(req.FormValue("content"))
    }

    http.HandleFunc("/insert", handler)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

リクエスト送信

Untitled.png

実行結果

サンプル

勉強になったこと

以下ドキュメントのサンプルを参考にしながら書きました。

https://pkg.go.dev/net/http

ざっくり解説します。※本当にざっくり

ListenAndServe

サーバを起動する

ListenAndServeは、TCPネットワークアドレスaddrでリッスンし、受信接続の要求を処理するハンドラでServeを呼び出します。受け付けられた接続は、TCP キープアライブを有効にするように設定されます。
ハンドラは通常nilであり、その場合DefaultServeMuxが使用される。
ListenAndServeは常にnilでないエラーを返します。

HandleFunc

指定したURLパターンのリクエストが来たとき、関数(ハンドラ関数)を呼び出す

HandleFunc は、与えられたパターンに対応するハンドラ関数を DefaultServeMux に登録する。ServeMuxのドキュメントでは、パターンがどのようにマッチングされるかを説明しています。

FormValue

GETパラメータを取得する

FormValue は、クエリの名前付きコンポーネントの最初の値を返します。POST と PUT のボディパラメータは、URL のクエリ文字列の値よりも優先されます。FormValue は、必要に応じて ParseMultipartForm と ParseForm を呼び出し、これらの関数が返すエラーは無視されます。key が存在しない場合、FormValue は空文字列を返します。同じキーの複数の値にアクセスするには、ParseFormを呼び出してから、Request.Formを直接検査します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0