go 最强大的地方在于 goroutine 的实现,goroutine最适合的应用场景就是异步i/o。
先看一个简单的 tcp 连接:
post json
当需要指定 Header 参数时,需要创建一个 http.Client 对象,然后用 http.Client 发起 http 请求。例如 POST 的时候指定 Heaer:
1 | data := map[string]string{} |
读取结果和返回码
1 | resp, err := http.Get("http://example.com/") |
1 | // server |
Https 非安全访问
1 | tr := &http.Transport{ |
http server
起一个 http server 有两种方式,分别是 http.Server.ListenAndServe()
和 http.ListenAndServe()
,
两者在本质上是相同的。
监听 http1
2
3
4
5
6// 创建 tcp 连接
s := &http.Server{}
s.ListenAndServe()
// 这里会创建一个 http.Server,然后调用 ListenAndServe
http.ListenAndServe(":80808", nil)