РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1001 of 1593 menu

Функция http.PostForm

Функция http.PostForm выполняет HTTP запрос с методом POST, отправляя данные формы на указанный URL. Первым параметром функция принимает строку с адресом сервера, вторым параметром - структуру url.Values, содержащую пары ключ-значение для отправки. Функция возвращает указатель на http.Response и ошибку. В случае успеха ответ необходимо закрыть методом defer resp.Body.Close().

Синтаксис

http.PostForm(url string, data url.Values) (*http.Response, error)

Пример

Давайте отправим простую форму с данными пользователя:

package main import ( "fmt" "net/http" "net/url" ) func main() { data := url.Values{} data.Set("username", "john_doe") data.Set("email", "john@example.com") resp, err := http.PostForm("https://httpbin.org/post", data) if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() fmt.Println("Status:", resp.Status) }

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

"Status: 200 OK"

Пример

Отправим несколько полей формы с различными типами данных:

package main import ( "fmt" "net/http" "net/url" ) func main() { data := url.Values{ "name": {"Alice"}, "age": {"30"}, "city": {"New York"}, "hobby": {"reading", "swimming"}, } resp, err := http.PostForm("https://httpbin.org/post", data) if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() fmt.Println("Status code:", resp.StatusCode) }

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

"Status code: 200"

Пример

Обработаем ответ сервера и прочитаем его содержимое:

package main import ( "fmt" "io" "net/http" "net/url" ) func main() { data := url.Values{} data.Set("search", "golang") data.Set("limit", "10") resp, err := http.PostForm("https://httpbin.org/post", data) if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() body, err := io.ReadAll(resp.Body) if err != nil { fmt.Println("Error reading body:", err) return } fmt.Println("Response body:", string(body)) }

Результат выполнения кода будет содержать JSON ответ от сервера с данными формы:

"Response body: {\"form\": {\"limit\": \"10\", \"search\": \"golang\"}, ...}"

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

  • функцию http.Get,
    которая выполняет GET запрос к серверу
  • функцию http.Post,
    которая отправляет данные в произвольном формате
  • метод Client.PostForm,
    который отправляет форму через кастомный клиент
  • структуру url.Values,
    которая используется для хранения параметров формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить