返回介绍

12.9 Go 实现 web 客户端

发布于 2024-08-14 12:50:31 字数 3131 浏览 0 评论 0 收藏 0

在这节,将学习更多关于使用 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 输出,要么什么都没有!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文