前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang中如何使用http长链接(client端)

golang中如何使用http长链接(client端)

作者头像
李海彬
发布2018-03-27 15:27:37
1.9K0
发布2018-03-27 15:27:37
举报
文章被收录于专栏:Golang语言社区
RESTFUL请求大部分都可以用短连接,即三次握手建立链接,交换数据完成后,释放掉的链接,短链接不会长时间占用端口号,实际项目中还会用到另一种,长链接,比如客户端发送RESTFUL请求,需要监测某一资源变化情况,服务端提供watch机制,在资源有变化时通知client端。

那么client端,相对于短链接,长链接应该怎么写呢?

和短链接基本一样,只需要循环读取server端返回的response即可。

代码语言:javascript
复制
package main



import (

        "fmt"

        "io"

        "log"

        "net/http"

)



func main() {

        request, err := http.NewRequest("GET", "http://www.example.com/", nil)

        if err != nil {

                log.Fatal(err)

        }



        http_client := &http.Client{}

        response, err := http_client.Do(request)

        if err != nil {

                log.Fatal(err)

        }



        buf := make([]byte, 4096) // any non zero value will do, try '1'.

        for {

                n, err := response.Body.Read(buf)

                if n == 0 && err != nil { // simplified

                        break

                }



                fmt.Printf("%s", buf[:n]) // no need to convert to string here

        }

        fmt.Println()

}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档