Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

43 lignes
902B

  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "net/http"
  6. "net/http/httputil"
  7. "net/url"
  8. )
  9. func handler(w http.ResponseWriter, r *http.Request) {
  10. fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
  11. rq := r.URL.RawQuery
  12. m, _ := url.ParseQuery(rq)
  13. for index, element := range m {
  14. fmt.Fprintf(w, "<br>%s => %s", index, element)
  15. }
  16. fmt.Fprintf(w, m["k"][0])
  17. logRequestDebug(httputil.DumpRequest(r, true))
  18. }
  19. func apiV1Main(w http.ResponseWriter, r *http.Request) {
  20. logRequestDebug(httputil.DumpRequest(r, true))
  21. rq := r.URL.RawQuery
  22. m, _ := url.ParseQuery(rq)
  23. fmt.Fprintf(w, m["echostr"][0])
  24. }
  25. func main() {
  26. http.HandleFunc("/", handler)
  27. http.HandleFunc("/api", apiV1Main)
  28. //http.ListenAndServe("127.0.0.1:65500", nil)
  29. http.ListenAndServe(":65500", nil)
  30. }
  31. func logRequestDebug(data []byte, err error) {
  32. if err == nil {
  33. fmt.Printf("%s\n\n", data)
  34. } else {
  35. log.Fatalf("%s\n\n", err)
  36. }
  37. }