Go程序设计语言1.5 获取一个URL

简介:

1.5 获取一个URL


对许多应用而言,访问互联网上的信息和访问本地文件系统一样重要。Go提供了一系列包,在net包下面分组管理,使用它们可以方便地通过互联网发送和接收信息,使用底层的网络连接,创建服务器,此时Go的并发特性(见第8章)特别有用。

程序fetch展示从互联网获取信息的最小需求,它获取每个指定URL的内容,然后不加解析地输出。fetch来自curl这个非常重要的工具。显然可以使用这些数据做更多的事情,但这里只讲基本的思路,本书将会频繁用到这个程序:

 

这个程序使用的函数来自两个包:net/http和io/ioutil。http.Get函数产生一个HTTP请求,如果没有出错,返回结果存在响应结构resp里面。其中resp的Body域包含服务器端响应的一个可读取数据流。随后ioutil.ReadAll读取整个响应结果并存入b。关闭Body数据流来避免资源泄漏,使用Printf将响应输出到标准输出。

 

如果HTTP请求失败,fetch报告失败:

无论哪种错误情况,os.Exit(1)会在进程退出时返回状态码1。

练习1.7:函数io.Copy(dst,src)从src读,并且写入dst。使用它代替ioutil.ReadAll来复制响应内容到os.Stdout,这样不需要装下整个响应数据流的缓冲区。确保检查io.Copy返回的错误结果。

练习1.8:修改fetch程序添加一个http://前缀(假如该URL参数缺失协议前缀)。可能会用到strings.HasPrefix。

练习1.9:修改fetch来输出HTTP的状态吗,可以在resp.Status中找到它。

相关文章
|
4月前
|
数据采集 Go
如何使用 Go 语言实现并发获取多个 URL?
如何使用 Go 语言实现并发获取多个 URL?
30 0
如何使用 Go 语言实现并发获取多个 URL?
Go 语言入门很简单:net/url 包(下)
在 Golang 中,将 URL 打包用于从服务器获取数据非常重要。只需了解您是否正在处理任何应用程序并且您想从任何外部位置或服务器获取此应用程序的数据,都需要我们可以使用 URL。
|
Go 数据安全/隐私保护
Go 语言入门很简单:net/url 包(上)
在 Golang 中,将 URL 打包用于从服务器获取数据非常重要。只需了解您是否正在处理任何应用程序并且您想从任何外部位置或服务器获取此应用程序的数据,都需要我们可以使用 URL。
|
算法 Go
GO语言 短URL生成
短URL介绍链接: 1)https://segmentfault.com/a/1190000012088345 2)http://www.voidcn.com/article/p-ydjqllgt-ed.
2200 0