simple_webserver.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // simple_webserver.go
  2. package main
  3. import (
  4. "net/http"
  5. "io"
  6. )
  7. const form = `<html><body><form action="#" method="post" name="bar">
  8. <input type="text" name="in"/>
  9. <input type="submit" value="Submit"/>
  10. </form></html></body>`
  11. /* handle a simple get request */
  12. func SimpleServer(w http.ResponseWriter, request *http.Request) {
  13. io.WriteString(w, "<h1>hello, world</h1>")
  14. }
  15. /* handle a form, both the GET which displays the form
  16. and the POST which processes it.*/
  17. func FormServer(w http.ResponseWriter, request *http.Request) {
  18. w.Header().Set("Content-Type", "text/html")
  19. switch request.Method {
  20. case "GET":
  21. /* display the form to the user */
  22. io.WriteString(w, form );
  23. case "POST":
  24. /* handle the form data, note that ParseForm must
  25. be called before we can extract form data*/
  26. //request.ParseForm();
  27. //io.WriteString(w, request.Form["in"][0])
  28. io.WriteString(w, request.FormValue("in"))
  29. }
  30. }
  31. func main() {
  32. http.HandleFunc("/test1", SimpleServer)
  33. http.HandleFunc("/test2", FormServer)
  34. if err := http.ListenAndServe(":8088", nil); err != nil {
  35. panic(err)
  36. }
  37. }