前言
Go语言内置的net/http包提供了HTTP客户端和服务端的实现。
浏览器其实就是一个发送和接收HTTP协议数据的客户端,我们平时通过浏览器访问网页其实就是从网站的服务器接收HTTP数据,然后浏览器会按照HTML、CSS等规则将网页渲染展示出来。
实例
下面以一个简单的实例来展示如何搭建一个简单的HTTP服务客户端。(注意:下面是模拟Get请求,Post请求同理流程)
package main
import (
"fmt"
. "fmt"
"io/ioutil"
"net/http"
"time"
)
func main() {
//模拟一个get提交请求
resp, err := http.Get("http://www.baidu.com")
if err != nil {
Println("Get failed! err is ", err.Error())
return
}
//关闭连接
defer resp.Body.Close()
//读取报文中所有内容
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
Println("Read from Body failed!, err is ", err.Error())
return
}
//输出内容
fmt.Println(string(body))
time.Sleep(time.Second * 10)
}
效果
上面的代码保存之后编译成可执行文件,执行之后就能在终端打印出www.baidu.com网站首页的内容了。
后言
这里介绍了如何搭建HTTP服务的Client端,前面我们也介绍了如何搭建HTTP服务的Server端(点击这里跳转)。
那么如何搭建 Server - Client 这样的一体化HTTP服务呢?怎么实现访问api时通过传入不同的参数进行请求,响应得到不同的内容呢?点击这里开始学习吧!