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

Метод http.Client.PostForm

Метод http.Client.PostForm отправляет HTTP POST-запрос с данными формы (application/x-www-form-urlencoded) на указанный URL. Первым параметром метод принимает строку с URL-адресом, вторым параметром - значения формы в виде url.Values. Метод возвращает указатель на http.Response и ошибку. После получения ответа тело ответа необходимо закрыть.

Синтаксис

client.PostForm(url, data)

Пример

Давайте отправим POST-запрос с данными формы на сервер:

package main import ( "fmt" "net/http" "net/url" "strings" ) func main() { client := &http.Client{} data := url.Values{} data.Set("username", "john_doe") data.Set("email", "john@example.com") resp, err := client.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() { client := &http.Client{} data := url.Values{ "name": {"Alice"}, "age": {"30"}, "city": {"New York"}, "hobbies": {"reading", "swimming", "coding"}, } resp, err := client.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"

Пример

Давайте используем http.DefaultClient для отправки формы и проверим полученные данные:

package main import ( "fmt" "io" "net/http" "net/url" ) func main() { data := url.Values{} data.Set("product", "laptop") data.Set("quantity", "2") data.Set("price", "999.99") resp, err := http.DefaultClient.PostForm("https://httpbin.org/post", data) if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println("Response:", string(body)) }

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

"Response: {\n \"form\": {\n \"price\": \"999.99\",\n \"product\": \"laptop\",\n \"quantity\": \"2\"\n }\n}"

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

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