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

Функция http.Get

Функция http.Get выполняет HTTP GET-запрос по указанному URL-адресу. Она принимает один параметр - строку с адресом ресурса, и возвращает два значения: указатель на http.Response и ошибку error. При успешном выполнении ответ необходимо закрывать с помощью вызова defer resp.Body.Close().

Синтаксис

resp, err := http.Get(url)

Пример

Давайте выполним GET-запрос к тестовому API и выведем статус ответа:

package main import ( "fmt" "net/http" ) func main() { resp, err := http.Get("https://httpbin.org/get") if err != nil { fmt.Println("Error:", err) return } defer resp.Body.Close() fmt.Println("Status:", resp.Status) }

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

"Status: 200 OK"

Пример

Прочитаем тело ответа как строку с помощью io.ReadAll:

package main import ( "fmt" "io" "net/http" ) func main() { resp, err := http.Get("https://httpbin.org/get") 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(string(body)) }

Результат выполнения кода (сокращенный):

"{\n \"args\": {}, \n \"headers\": {...}, \n \"origin\": \"...\", \n \"url\": \"https://httpbin.org/get\"\n}"

Пример

Обработаем возможную ошибку при запросе к несуществующему ресурсу:

package main import ( "fmt" "net/http" ) func main() { resp, err := http.Get("https://example.invalid") if err != nil { fmt.Println("Request failed:", err) return } defer resp.Body.Close() fmt.Println("Status:", resp.Status) }

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

"Request failed: Get \"https://example.invalid\": dial tcp: lookup example.invalid: no such host"

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

  • функцию http.Post,
    которая выполняет POST-запрос с телом
  • функцию http.PostForm,
    которая отправляет данные формы методом POST
  • функцию http.Head,
    которая выполняет HEAD-запрос (получает только заголовки)
  • тип http.Client,
    который предоставляет более гибкую настройку запросов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить