| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package main
- import (
- "fmt"
- "net/http"
- "strconv"
- )
- func main() {
- // server1()
- // server2()
- server3()
- }
- func handlerHello(w http.ResponseWriter, r *http.Request) {
- w.Write([]byte("Hello, web!"))
- }
- func server1() {
- http.HandleFunc("/get", handlerHello)
- err := http.ListenAndServe(":8080", nil)
- if err != nil {
- fmt.Println("Ошибка запуска сервера:", err)
- }
- }
- func handlerName(w http.ResponseWriter, r *http.Request) {
- w.Write([]byte("Hello," + r.URL.Query().Get("name")))
- }
- func server2() {
- http.HandleFunc("/api/user", handlerName)
- err := http.ListenAndServe(":9000", nil)
- if err != nil {
- fmt.Println("Ошибка запуска сервера:", err)
- }
- }
- // Напиши веб сервер (порт :3333) - счетчик который будет обрабатывать
- // GET (/count) и POST (/count) запросы:
- // GET: возвращает счетчик
- // POST: увеличивает ваш счетчик на значение (с ключом "count")
- // которое вы получаете из формы, но если пришло НЕ число то нужно
- // ответить клиенту: "это не число" со статусом http.StatusBadRequest (400).
- var count int
- func handlerCount(w http.ResponseWriter, r *http.Request) {
- if r.Method == "GET" {
- fmt.Fprint(w, count)
- } else if r.Method == "POST" {
- cnt, err := strconv.Atoi(r.FormValue("count"))
- if err != nil {
- w.WriteHeader(http.StatusBadRequest) // return 400
- w.Write([]byte("это не число"))
- return
- }
- count += cnt
- }
- w.WriteHeader(http.StatusMethodNotAllowed) // return 405
- }
- func server3() {
- http.HandleFunc("/count", handlerCount)
- err := http.ListenAndServe(":3333", nil)
- if err != nil {
- fmt.Println("Ошибка запуска сервера:", err)
- }
- }
|