Функция http.Post

Функция http.Post позволяет отправить HTTP POST запрос на удаленный сервер. В первый параметр мы передаем URL-адрес, куда будет отправлен запрос. Во второй параметр мы передаем тип содержимого (Content-Type) запроса, например, application/json. В третий параметр мы передаем тело запроса в виде интерфейса io.Reader, которое будет отправлено на сервер.

Синтаксис

gohttp.Post(url, contentType, body)

Пример

Давайте отправим JSON данные на сервер с помощью функции http.Post:

gopackage 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)
}

Результат выполнения кода:

go"Status: 200 OK"

Пример

Отправим данные в формате формы с помощью функции http.Post:

gopackage 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)
}

Результат выполнения кода:

go"Status: 200"

Смотрите также

  • функцию http.Get,
    которая выполняет HTTP GET запрос к указанному URL
  • функцию http.PostForm,
    которая отправляет POST запрос с данными формы
  • функцию http.Head,
    которая отправляет HTTP HEAD запрос к указанному URL
  • структуру http.Client,
    которая предоставляет расширенные возможности для выполнения HTTP запросов