2019独角兽企业重金招聘Python工程师标准>>>

package mainimport ("os""net/http""fmt""io/ioutil""strings"
)func main(){for _,arg :=range os.Args[1:]{if !strings.HasPrefix(arg,"http://"){ //检查输入的url 中是否有协议前缀arg= "http://"+arg}res,err := http.Get(arg)if err !=nil{  //遇到错误  返回状态码并且退出fmt.Fprint(os.Stderr,"fetch: %s:%v\n",err,res.Status)os.Exit(1)}body,err := ioutil.ReadAll(res.Body)//读取数据流  存入 body中res.Body.Close()if err != nil{ //遇到错误  返回状态码并且退出fmt.Fprint(os.Stderr,"fetch %s:%v:$s",arg,err,res.Status)os.Exit(1)}fmt.Printf("%s:$s",body,res.Status)}
}

命令行中输入  go build xxx.go

./xxx  www.baidu.com

以上是单线程的例子接下来使用go 关键字 开发一个多线程的

package mainimport ("os""time""fmt""net/http""io""io/ioutil""strings"
)func main(){start := time.Now()ch := make(chan string)for _,url :=range os.Args[1:]{go fetch(url,ch)}for range os.Args[1:]{fmt.Println(<-ch)}fmt.Printf("%.2fs elapsed\n",time.Since(start).Seconds())}
func fetch(url string,ch chan<- string){start := time.Now()if(!strings.HasPrefix(url,"http://")){url ="http://"+ url}res,err := http.Get(url)if err != nil{ch <- fmt.Sprint(err)return}nbytes,err := io.Copy(ioutil.Discard,res.Body)res.Body.Close()if err != nil{ch <- fmt.Sprint("while rading %s:$v",url,err)return}secs := time.Since(start).Seconds()ch <- fmt.Sprint("%.2fs %7d %s",secs,nbytes,url)}

支持多个链接

尝试一下  还是蛮好玩的

转载于:https://my.oschina.net/raojiangjin/blog/1556880

Go语言实例系列【 获得url实例】相关推荐

  1. c语言二级指针有什么作用,C语言中二级指针的实例详解

    C语言中二级指针的实例详解 C语言中二级指针的实例详解 用图说明 示例代码: #include int main(int argc, const char * argv[]) { // int a = ...

  2. Net设计模式实例系列文章总结[转]

    1 什么是设计模式 设计模式是对在软件设计过程中重复出现的问题提出了一种比较好的解决方案.正如一位专家所说:设计模式是对程序设计人员经常遇到的设计问题的可再现的解决方案(The Smalltalk C ...

  3. 大话西游之Office应用实例系列! 20

    第二十回 企业发展征途远 Office升级路漫漫 话说这日下午,红孩儿正浸润在冬日夕阳余晖中,喝着Coffee,查收各分公司技术人员通过邮件提交上来的办公中遇到的疑难杂症.一封Microsoft的来信 ...

  4. Spring MVC代码实例系列-06:Spring MVC配置Hibernate-Validator以及自定义校验注解

    超级通道 :Spring MVC代码实例系列-绪论 本章主要记录,如何在Spring MVC中添加Hibernate-Validator以及自定义校验注解.本章主要涉及的技术点有: javax.val ...

  5. Knife4j系列--使用/教程/实例/配置

    原文网址:Knife4j系列--使用/教程/实例/配置_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用示例介绍knife4j的用法.(SpringBoot整合knife4j) Knife4j是一 ...

  6. matlab简单程序实例_visual basic VB.NET实例系列教程第一节(简单实用抽奖程序)...

    近期疫情原因,工作比较不忙,所以打算出一套零基础,VB.NET实例系列入门教程,实用又好玩,带大家进入VB的编程世界里,希望这套图文教程能帮到有需要的人! 第一节(简单实用抽奖程序) 内容准备:编译环 ...

  7. C语言库函数大全及应用实例二

                                                 [编程资料]C语言库函数大全及应用实例二 函数名: bioskey 功 能: 直接使用BIOS服务的键盘接口 ...

  8. C语言库函数大全及应用实例七

    原文:C语言库函数大全及应用实例七 [编程资料]C语言库函数大全及应用实例七 函数名: getw 功 能: 从流中取一整数 用 法: int getw(FILE *strem); 程序例: <? ...

  9. java的model层实例_Struts 2.1.6 精简实例系列教程(3):新闻管理Model层的开发(整合iBatis)...

    本期开始讲Model层的开发,整合iBatis框架,iBatis是Apache旗下Java数据持久层的框架,跟Hibernate是同一类型的框架.大家可到它的官方网站去下载http://ibatis. ...

  10. 三菱modbusRTU通讯实例_干货 | 解析西门子系列PLC编程实例

    点击箭头处"工业之家",选择"关注公众号"! 解析西门子系列PLC编程实例 三辊卷板机有分为机械式和液压式,机械式又分为对称式和非对称式.用于重型机械公司,将金 ...

最新文章

  1. Assembly--及相关内容
  2. pip安装pandas失败Could not find a version that satisfies the requirement pandas
  3. form、document.all[].value的数字处理
  4. ios时间相差多少天_iOS 计算某个时间到现在是多少月/天/时
  5. 单片机复位后为什么要对sp重新赋值_51单片机系列之2点亮第一个led小灯
  6. php 查询cpu使用率,php获取CPU使用情况的代码
  7. 牛客网 字符串的排列
  8. BZOJ 1833 数位DP
  9. 安装Adobe Reader 时报错:HRESULT:0x80070422
  10. windows xp 虚拟机卡顿问题查找
  11. css文字向右对齐_css怎么设置右对齐?
  12. MySQL:Can't create test file XXX.lowe-test
  13. 新个人所得税计算公式
  14. ESP32 LVGL8.1 ——anim 动画 (anim 16)
  15. 网页中滑动导航菜单制作
  16. 基于云平台的电力供电设备远程监控系统
  17. 计算机课范文,计算机课程论文范文 计算机课程方面论文范文文献2500字
  18. 链表从尾部增加新节点
  19. MACD指标的数学意义解析
  20. EPB电子驻车制动系统Simulink模型 模型包括:有刷直流电机+执行器模型,电机参数m文件,SSM模块,PBC模块,数据处理模块,与Carsim联防进行过验证

热门文章

  1. ios键盘弹回时顶上去得页面不会回来
  2. Windows平台下Git服务器搭建
  3. SPOJ - SUBLEX 【后缀自动机】
  4. [Contest]2017 ACM/ICPC Asia Regional Shenyang Online(01 03 07 09 10 11待补)
  5. 在安卓模拟器中,adb安装apk常见错误
  6. 爱奇艺2020校招编程题汇总第一题(切方块问题)
  7. SpringCloud集成Security安全(Eureka注册中心)
  8. SpringBoot集成MyBatis-Plus代码生成器(Dao)
  9. SpringCloud创建项目父工程
  10. Spring项目包变文件夹