EchoJsonCityServer.go 976 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "io"
  6. "log"
  7. "net/http"
  8. _ "strconv"
  9. _ "strings"
  10. )
  11. type bodyRequest struct {
  12. CityName string `json:"city"`
  13. }
  14. func main() {
  15. http.HandleFunc("/", saycity) // Устанавливаем роутер
  16. err := http.ListenAndServe(":8080", nil) // устанавливаем порт веб-сервера
  17. if err != nil {
  18. log.Fatal("ListenAndServe: ", err)
  19. }
  20. }
  21. func saycity(w http.ResponseWriter, r *http.Request) {
  22. defer r.Body.Close()
  23. if r.Method != "POST" {
  24. fmt.Fprintf(w, "Привет, чтобы все заработало - нужно отправить запрос методом Post c переменной city!")
  25. return
  26. }
  27. bytes, err := io.ReadAll(r.Body)
  28. if err != nil {
  29. fmt.Fprintf(w, "500")
  30. return
  31. }
  32. var cityReq bodyRequest
  33. err = json.Unmarshal(bytes, &cityReq)
  34. if err != nil {
  35. fmt.Fprintf(w, "400")
  36. fmt.Fprintf(w, err.Error())
  37. return
  38. }
  39. fmt.Fprintf(w, cityReq.CityName)
  40. }