Go程序设计语言1.5 获取一个URL-阿里云开发者社区

开发者社区> 华章计算机> 正文

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中找到它。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C#分析URL参数获取参数和值得对应列表(二)
不错博客: [C#HttpHelper]官方产品发布与源码下载---苏飞版http://www.sufeinet.com/thread-3-1-1.html http://blog.csdn.net/xxj_jing/article/details/8107882 http://zhoufoxcn.
979 0
互联网架构,如何进行容量设计?
互联网公司,这样的场景是否似曾相识:
399 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4617 0
获取iOS应用的URL Schemes
获取iOS应用的URL Schemes
6 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载