Go 标准库在 net/http 包中提供了对 HTTP 客户端和服务器的出色支持。在本例中,我们将使用它来发出简单的 HTTP 请求。
net/http
package main
import ( "bufio" "fmt" "net/http" )
func main() {
向服务器发出 HTTP GET 请求。http.Get 是围绕创建 http.Client 对象并调用其 Get 方法的便捷快捷方式;它使用 http.DefaultClient 对象,该对象具有有用的默认设置。
http.Get
http.Client
Get
http.DefaultClient
resp, err := http.Get("https://gobyexample.golang.ac.cn") 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 服务器.
作者:Mark McGranaghan 和 Eli Bendersky | 源代码 | 许可证