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

Метод http.Client.Get

Метод http.Client.Get выполняет HTTP GET-запрос к указанному URL-адресу. В качестве единственного параметра он принимает строку с адресом ресурса. Метод возвращает указатель на структуру http.Response и ошибку. Важно закрывать тело ответа с помощью defer resp.Body.Close() во избежание утечек ресурсов. Если запрос выполнен успешно, в ответе доступны код состояния, заголовки и тело ответа.

Синтаксис

resp, err := client.Get(url)

где client — переменная типа http.Client, url — строка с адресом запроса.

Пример

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

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

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

"Status: 200"

В данном примере мы создаем клиент, отправляем GET-запрос и выводим код состояния ответа.

Пример

Прочитаем тело ответа как строку:

package main import ( "fmt" "io" "net/http" ) func main() { client := &http.Client{} resp, err := client.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}\n"

В этом примере мы читаем тело ответа с помощью io.ReadAll и выводим его как строку.

Пример

Обработаем ошибки и проверим статус ответа:

package main import ( "fmt" "net/http" ) func main() { client := &http.Client{} resp, err := client.Get("https://httpbin.org/status/404") if err != nil { fmt.Println("Request failed:", err) return } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { fmt.Printf("Unexpected status: %d\n", resp.StatusCode) return } fmt.Println("Request succeeded") }

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

"Unexpected status: 404"

Здесь мы проверяем статус ответа и обрабатываем случай, когда сервер возвращает код, отличный от 200 OK.

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

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