标准库 net/http

resp, err := http.Get("http://example.com")
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(body))

第三方库 go-resty

go-resty 是一个简单易用的 HTTP 客户端库,它提供了链式调用的 API,使得发送 HTTP 请求变得更加简洁。它还支持自动解析 JSON 和 XML 响应、文件上传、客户端重试等功能。

client := resty.New()
resp, err := client.R().Get("http://example.com")
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(resp.Body()))

第三方库 requests

requests 是另一个用于发送 HTTP 请求的库,它提供了一个简单易用的 API。它允许你构建请求,并且支持多种响应处理方式,包括直接将响应解析为 JSON 或写入文件。

var s string
err := requests.
    URL("http://example.com").
    ToString(&s).
    Fetch(context.Background())
if err != nil {
    fmt.Println("could not connect to example.com:", err)
}
fmt.Println(s)