Go 实现 web 客户端
在这节,将学习更多关于使用 Go 开发 web 客户端。这个 web 客户端工具的名字是 webClient.go
,分为四部分展示。
webClient.go
的第一部分包含如下代码:
package main
import (
"fmt"
"io"
"net/http"
"os"
"path/filepath"
)
webClient.go
的第二部分是读取命令行参数获得期望的 URL:
func main() {
if len(os.Args) != 2 {
fmt.Printf("Usage: %s URL\n", filepath.Base(os.Args[0]))
return
}
URL := os.Args[1]
webClient.go
的第三部分是实际操作发生的地方:
data, err := http.Get(URL)
if err != nil {
fmt.Println(err)
return
http.Get()
调用做了所有的工作,当您不想要处理参数和选项时它是相当的方便。然而,这样的调用方式在处理过程中没有灵活性。注意,http.Get()
返回一个 http.Response
变量。
余下的代码如下:
} else {
defer data.Body.Close()
_, err := io.Copy(os.Stdout, data.Body)
if err != nil {
fmt.Println(err)
return
}
}
}
上面这段代码复制 http.Response
结构的 Body
字段内容到标准输出。
执行 webClient.go
将产生如下输出:
只有已小部分展示在这
webClient.go
的主要问题是几乎不能控制处理过程——您要么获得全部 HTML 输出,要么什么都没有!