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

December 09, 2023
测试
测试
测试
测试
2 分钟阅读
RESTFUL请求大部分都可以用短连接,即三次握手建立链接,交换数据完成后,释放掉的链接,短链接不会长时间占用端口号,实际项目中还会用到另一种,长链接,比如客户端发送RESTFUL请求,需要监测某一资源变化情况,服务端提供watch机制,在资源有变化时通知client端。

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

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

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()

}

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多