1、http客户端编程

示例:

http_server.go

package mainimport ("fmt""net/http"
)//w, 给客户端回复数据
//r, 读取客户端发送的数据
func HandConn(w http.ResponseWriter, r *http.Request) {fmt.Println("r.Method = ", r.Method)fmt.Println("r.URL = ", r.URL)fmt.Println("r.Header = ", r.Header)fmt.Println("r.Body = ", r.Body)w.Write([]byte("hello go")) //给客户端回复数据
}func main() {//注册处理函数,用户连接,自动调用指定的处理函数http.HandleFunc("/", HandConn)//监听绑定http.ListenAndServe(":8000", nil)
}

http_client.go

package mainimport ("fmt""net/http"
)func main() {//resp, err := http.Get("http://www.baidu.com")resp, err := http.Get("http://127.0.0.1:8000")if err != nil {fmt.Println("http.Get err = ", err)return}defer resp.Body.Close()fmt.Println("Status = ", resp.Status)fmt.Println("StatusCode = ", resp.StatusCode)fmt.Println("Header = ", resp.Header)//fmt.Println("Body = ", resp.Body)buf := make([]byte, 4*1024)var tmp stringfor {n, err := resp.Body.Read(buf)if n == 0 {fmt.Println("read err = ", err)break}tmp += string(buf[:n])}//读取网页内容,打印出来fmt.Println("tmp = ", tmp)
}

执行结果:

先运行服务端:

D:\GoFiles\src\hello_01>go run http_server.go
r.Method =  GET
r.URL =  /
r.Header =  map[User-Agent:[Go-http-client/1.1] Accept-Encoding:[gzip]]
r.Body =  {}

再运行客户端:

D:\GoFiles\src\hello_01>go run http_client.go
Status =  200 OK
StatusCode =  200
Header =  map[Date:[Sat, 26 Jan 2019 07:04:09 GMT] Content-Length:[8] Content-Ty
pe:[text/plain; charset=utf-8]]
read err =  EOF
tmp =  hello go

  

转载于:https://www.cnblogs.com/nulige/p/10323511.html

go语言之进阶篇http客户端编程相关推荐

  1. 视频教程-C语言程序设计--进阶篇教学视频-C/C++

    C语言程序设计--进阶篇教学视频 烟台大学计算机学院教师,二十年余教师生涯,看出了在错综复杂的教育环境中,坚持教育教学的价值与前景.和学生并肩,与不良学风作斗争,为IT菜鸟建跑道,让大一的孩子会编程, ...

  2. Go语言之进阶篇http服务器获取客户端的一些信息

    1.http服务器获取客户端的一些信息 示例: package mainimport ("fmt""net/http" )//w, 给客户端回复数据 //r, ...

  3. 【c语言】进阶篇学习笔记

    C语言高级特性 C语言的高级部分.指针板块,需要理解计算机内存模型,需要格外注意. 函数 程序帮我们补充好的main函数: int main() { //这是定义函数... } 程序的入口点就是mai ...

  4. 知到/智慧树——程序设计基础(C语言)进阶篇

    目录 第一章测试 第二章测试 第三章测试 第四章测试 第五章测试 第一章测试 第1部分 总题数: 10 1 [单选题] (10分) 在C语言中,将属于不同类型的数据作为一个整体来处理时,常用( ). ...

  5. 字节跳动最新开源!java语言程序设计进阶篇

    一面: 阿里巴巴面试答案文末可以领取! 1. 触发新生代GC,如果存活对象总量大于survivor区容量,咋办 2. 如果任务很多,线程池的阻塞队列会撑爆内存的哪个区域 3. 栈在堆上吗 4. GC ...

  6. 漫游Kafka实战篇之客户端编程实例

    原文地址:http://blog.csdn.net/honglei915/article/details/37697655 Kafka视频教程同步首发,欢迎观看! Kafka Producer API ...

  7. 【C语言笔记进阶篇】第二章:字符串函数和内存函数

    目录 (1)分类 (2)字符串函数 A:strlen(求字符串长度) B:strcpy(字符串复制_不受限制) C:strcat(字符串追加_不受限制) D:strcmp(字符串比较_不受限制) E: ...

  8. 【C语言笔记进阶篇】第一章:指针进阶

    目录 (1)字符指针 (2)指针数组 A:什么是指针数组 B:指针数组的用法 (3)数组指针 A:什么是数组指针 B:数组指针的用法 C:关于指针和数组的再总结 (4)数组参数,指针参数 A:一维数组 ...

  9. go语言之进阶篇主协程先退出导致子协程没来得及调用

    1.主协程先退出导致子协程没来得及调用 示例: package mainimport ("fmt""time" )//主协程退出了,其它子协程也要跟着退出 fu ...

最新文章

  1. flex+android+教程,android开发flex4.5入门教程.pdf
  2. 真的有人在偷听我们讲话么?
  3. jAVA 得到Map价值
  4. boost::mp11::mp_transform_if_q相关用法的测试程序
  5. arm linux ping 通百度,linux ---之与ARM开发板相互ping 通
  6. linux远程登录 密钥,使用密钥认证机制远程登录Linux
  7. 多次点击android版本出现棒棒糖,android – 为前棒棒糖设备创建循环显示
  8. 信息学奥赛一本通(1253:抓住那头牛)
  9. # 国王游戏(贪心+大数乘除+微扰法证明)
  10. 信息处理技术员的作用
  11. android ant下载安装,ANT+ Plugins
  12. java shiro原理_Shiro的原理及Web搭建
  13. H5点击触摸测试,点击延迟测试,点击触摸时长测试案例
  14. 在linux下恶臭hellotext中作用的?,《Linux内核与程序设计》实验学习笔记
  15. HTML5+CSS3小实例:炫彩爱心加载特效
  16. [读书笔记]《小强升职记》
  17. 机器学习之贝叶斯网络实践(举例)
  18. 一文带你读懂“TRIZ”
  19. 秒杀ibluever 免越狱iPad wifi版连接蓝牙“双环”直接上网
  20. js打开服务器word文件,javascript打开word文档的方法

热门文章

  1. 手机经常提示找不到服务器,经常出现找不到服务器是什么原因?什么网也打 – 手机爱问...
  2. 全国青少年软件编程python等级考试-全国青少年软件编程等级考试:Python一级考试大纲...
  3. python面向对象编程的优点-Python 基础知识----面向对象编程
  4. python 命令行参数-Python处理命令行参数
  5. python编程入门经典教程-2020年5个经典python编程入门视频教程推荐学习
  6. python中if错误-python中的异常处理
  7. python工程师待遇-Python工程师待遇如何 玩转Python看这里
  8. python自动化测试视频百度云-Python接口自动化测试 PDF 超清版
  9. python各个解释器的用途-常见的Python五大解释器!
  10. python写学生系统-用python编写学生管理系统