Go بالأمثلة: عميل HTTP

تحتوي مكتبة Go القياسية على دعم ممتاز لعملاء وخوادم HTTP في حزمة net/http. في هذا المثال، سنستخدمها لإرسال طلب HTTP بسيط.

package main

import (
    "bufio"
    "fmt"
    "net/http"
)

func main() {

إرسال طلب HTTP GET إلى خادم. http.Get هي وسيلة مريحة لإنشاء كائن http.Client واستدعاء دالة Get عليه.

    resp, err := http.Get("https://gobyexample.com")
    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-client.go
Response status: 200 OK
<!DOCTYPE html>
<html>
...

المثال التالي: خادم HTTP.