HTTP Клієнт|HTTP Client
#
// Стандартна бібліотека Go поставляється з чудовою підтримкою
// HTTP клієнтів і серверів. Дана підтримка забезпечується пакетом `net/http`.
// Даний приклад продемонструє створення простого HTTP запиту.
package main
import (
"bufio"
"fmt"
"net/http"
)
func main() {
// Створити *µHTTP* запит з методом *GET*. `http.Get` являється
// зручною обгорткою для створення *HTTP*-клієнта, і відправки *GET* запиту.
// Дана обгортка використовує `http.DefaultClient` під капотом,
// що має подібні стандартні налаштування.
resp, err := http.Get("https://gobyexample.com")
if err != nil {
panic(err)
}
// Необхідно також не забувати _відкласти_ закриття рідера(Reader)
// за допомогою [`defer`](./defer), для того щоб не допустити *витік ресурсів*.
defer resp.Body.Close()
// Вивести *HTTP* статус відповіді.
fmt.Println("Response status:", resp.Status)
// Вивести перші 5 ліній з тіла відповіді
scanner := bufio.NewScanner(resp.Body)
for i := 0; scanner.Scan() && i < 5; i++ {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
panic(err)
}
}
$ go run http-clients.go
Response status: 200 OK
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Go by Example</title>