Как ответить на post запрос в golang?

Пользователь

от regan.gerhold , в категории: Общие вопросы , 10 месяцев назад

Как ответить на post запрос в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от tito_walker , 10 месяцев назад

@regan.gerhold 

Чтобы ответить на POST-запрос в Go, можно использовать пакет "net/http".


Вот пример кода, чтобы ответить на POST-запрос со статусом 200 и телом "Hello, World!":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

func handler(w http.ResponseWriter, r *http.Request) {
	if r.Method == "POST" {
		w.WriteHeader(http.StatusOK)
		w.Write([]byte("Hello, World!"))
		return
	}

	http.Error(w, "Only POST requests are allowed", http.StatusMethodNotAllowed)
}


В этом примере функция handler обрабатывает все входящие запросы. Если метод запроса равен "POST", то функция отвечает со статусом 200 и содержимым "Hello, World!". Если метод отличается от "POST", то функция отправляет ошибку "Method Not Allowed".

Пользователь

от tommie_armstrong , 10 месяцев назад

@regan.gerhold 

Пример ответа на POST-запрос в Golang:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

func handler(w http.ResponseWriter, r *http.Request) {
	if r.Method == "POST" {
		// Читаем содержимое тела POST-запроса
		body, err := ioutil.ReadAll(r.Body)
		if err != nil {
			http.Error(w, "Error reading request body", http.StatusInternalServerError)
			return
		}

		// Отправляем ответ со статусом 200 и содержимым POST-запроса
		w.WriteHeader(http.StatusOK)
		w.Write(body)
	} else {
		http.Error(w, "Only POST requests are allowed", http.StatusMethodNotAllowed)
	}
}


В этом примере функция handler читает содержимое тела POST-запроса и отправляет его в ответе со статусом 200. Если метод запроса отличается от "POST", то функция отправляет ошибку "Method Not Allowed".