模範 Go: HTTP クライアント

Go 標準ライブラリには net/http パッケージで HTTP クライアントとサーバーへの優れたサポートが付属しています。この例では、これを使用して簡単な HTTP リクエストを発行します。

package main
import (
    "bufio"
    "fmt"
    "net/http"
)
func main() {

サーバーへの HTTP GET リクエストを発行します。http.Gethttp.Client オブジェクトを作成してその Get メソッドを呼び出すための便利なショートカットです。便利な既定の設定を備えた http.DefaultClient オブジェクトを使用します。

    resp, err := http.Get("https://gobyexample.dokyumento.jp")
    if err != nil {
        panic(err)
    }
    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>

次の例: HTTP サーバー