golangに慣れている人にとっては当たり前の処理ですが、一応メモとして書き留めておきたいと思います。
- リクエストフォームの値を取得する
- curlコマンドで確認する
- URLにフォームを入力する
- –formオプションを利用する
リクエストフォームの値を取得する
golangでformの値を取得するには、FormValueメソッドを利用します。具体的には、以下のように取得したいKeyの値を指定します。
http.Request.FormValue(Key)
テスト用ソースコードを作成してみました。以下のソースコード は、ポート番号8080でhttpリクエストを受け付け、Formに入力されたnameとcountryの値を表示します。
package main import ( "log" "net/http" "fmt" ) func main() { //index関数をルートディレクトリに指定 http.HandleFunc("/", index) //サーバー起動 if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal("ListenAndServe:", nil) } } func index(writer http.ResponseWriter, r *http.Request) { fmt.Println( r.FormValue("name") ) fmt.Println( r.FormValue("country") ) }
curlコマンドで確認する
curlコマンドで確認する場合は、URLに入力するか、–formオプションを利用します。
先に上記で作成したgoファイルを実行しておきます。
$ go run main.go
URLにフォームを入力する
URLにフォームを入力する場合は、?の後に記述します。複数入力する場合は&を利用します。
$ curl --request GET 'http://localhost:8080/?name=koratta&country=japan'
上記コマンドの出力結果は以下の通りです。
koratta japan
–formオプションを利用する
–formオプションを利用する場合は、–formオプションの後ろにフォームを入力することで確認できます。
$ curl http://localhost:8080 --form "name=koratta" --form "country=korea"
上記コマンドの出力結果は以下の通りです。
koratta korea
以上です。