Client
http://localhost:8080/person?first_name=GS&last_name=PAK |
Server
※ r.URL.Query().Get("first_name") 보다 에러체크가 가능한 url.ParaseQuery를 사용
package main
import (
"fmt"
"log"
"net/http"
"net/url"
"os"
)
func parseQuery(w http.ResponseWriter, r *http.Request) {
params, err := url.ParseQuery(r.URL.RawQuery)
if err != nil {
log.Fatal(err)
}
first_name := params.Get("first_name")
last_name := params.Get("last_name")
fmt.Printf("Hi %s %s\n", first_name, last_name)
sisters := params["sisters"]
for _, sister := range sisters {
fmt.Printf("Hi %s\n", sister)
}
fmt.Fprintf(w, "OK")
}
func sayHello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there!")
}
func setupHandler(mux *http.ServeMux) {
mux.HandleFunc("/", sayHello)
mux.HandleFunc("/person", parseQuery)
}
func main() {
listenAddr := os.Getenv("LISTEN_ADDR")
if len(listenAddr) == 0 {
listenAddr = ":8080"
}
mux := http.NewServeMux()
setupHandler(mux)
log.Fatal(http.ListenAndServe(listenAddr, mux))
}
|
'backend (Go) 개발' 카테고리의 다른 글
http fileupload (0) | 2025.03.08 |
---|---|
http JSON (0) | 2025.03.08 |
Build HTTP Server (0) | 2025.03.05 |
환경설정 (0) | 2025.03.04 |