Функция http.Post
Функция http.Post позволяет отправить HTTP POST запрос на удаленный сервер.
В первый параметр мы передаем URL-адрес, куда будет отправлен запрос.
Во второй параметр мы передаем тип содержимого (Content-Type) запроса, например, application/json.
В третий параметр мы передаем тело запроса в виде интерфейса io.Reader, которое будет отправлено на сервер.
Синтаксис
http.Post(url, contentType, body)
Пример
Давайте отправим JSON данные на сервер с помощью функции http.Post:
package main
import (
"bytes"
"fmt"
"net/http"
)
func main() {
url := "https://httpbin.org/post"
contentType := "application/json"
body := []byte(`{"name": "John", "age": 30}`)
res, err := http.Post(url, contentType, bytes.NewBuffer(body))
if err != nil {
fmt.Println("Error:", err)
return
}
defer res.Body.Close()
fmt.Println("Status:", res.Status)
}
Результат выполнения кода:
"Status: 200 OK"
Пример
Отправим данные в формате формы с помощью функции http.Post:
package main
import (
"fmt"
"net/http"
"net/url"
"strings"
)
func main() {
apiUrl := "https://httpbin.org/post"
contentType := "application/x-www-form-urlencoded"
data := url.Values{}
data.Set("key", "value")
data.Set("foo", "bar")
res, err := http.Post(apiUrl, contentType, strings.NewReader(data.Encode()))
if err != nil {
fmt.Println("Error:", err)
return
}
defer res.Body.Close()
fmt.Println("Status:", res.StatusCode)
}
Результат выполнения кода:
"Status: 200"
Смотрите также
-
функцию
http.Get,
которая выполняет HTTP GET запрос к указанному URL -
функцию
http.PostForm,
которая отправляет POST запрос с данными формы -
функцию
http.Head,
которая отправляет HTTP HEAD запрос к указанному URL -
структуру
http.Client,
которая предоставляет расширенные возможности для выполнения HTTP запросов