Go by Example ไธญๆ–‡็‰ˆ: HTTP ๅฎขๆˆท็ซฏ

Go ๆ ‡ๅ‡†ๅบ“็š„ net/http ๅŒ…ไธบ HTTP ๅฎขๆˆท็ซฏๅ’ŒๆœๅŠก็ซฏๆไพ›ไบ†ๅ‡บ่‰ฒ็š„ๆ”ฏๆŒใ€‚ ๅœจ่ฟ™ไธชไพ‹ๅญไธญ๏ผŒๆˆ‘ไปฌๅฐ†ไฝฟ็”จๅฎƒๅ‘้€็ฎ€ๅ•็š„ HTTP ่ฏทๆฑ‚ใ€‚

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

ๅ‘ๆœๅŠก็ซฏๅ‘้€ไธ€ไธช HTTP GET ่ฏทๆฑ‚ใ€‚ http.Get ๆ˜ฏๅˆ›ๅปบ http.Client ๅฏน่ฑกๅนถ่ฐƒ็”จๅ…ถ Get ๆ–นๆณ•็š„ๅฟซๆทๆ–นๅผใ€‚ ๅฎƒไฝฟ็”จไบ† http.DefaultClient ๅฏน่ฑกๅŠๅ…ถ้ป˜่ฎค่ฎพ็ฝฎใ€‚

    resp, err := http.Get("http://gobyexample.com")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

ๆ‰“ๅฐ HTTP response ็Šถๆ€.

    fmt.Println("Response status:", resp.Status)

ๆ‰“ๅฐ response body ๅ‰้ข 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 ๆœๅŠก็ซฏ