go - 无法在 golang 的 http2 中使用流式传输

标签 go streaming http2

如何在golang中重用http2流?

大家好,最近我尝试了很多方法来重用流来发送http2数据但都失败了,而且我在http2中没有找到很多相关的解决方案,谁能给我一些提示或演示?

client := http.Client{

        Transport: &http2.Transport{
            DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
                return net.DialTimeout(network, addr, time.Second)
            },
                AllowHTTP: true,
        },
    }

    resp, err := client.Get(path)

我尝试使用 resp 作为客户端并写入此 resp 以将数据发送到服务器。这是正确的做法吗?

最佳答案

在 HTTP/2 中,流是短暂的,对应于请求/响应交换。实际上,响应结束会关闭流。如果底层连接使用 HTTP/2,则通过 client.Get 发出另一个请求将自动在连接上打开一个新流。

关于go - 无法在 golang 的 http2 中使用流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112261/

相关文章:

string - 在不打印的情况下格式化 Go 字符串?

android - 使用 4.1 HTML 5 直播到 android

php - 如何在 AWS EMR 流式集群中包含 PHP 所需的库

nginx - 哪些 Web 服务器支持 HTTP/2

google-app-engine - 使用 Go Runtime Google App Engine 的 Google Cloud Storage Client App 错误

html - 如何将变量及其值发送到html

go - 如何在Visual Studio代码中允许“vendor ”文件夹支持

streaming - 使用 libvlc 将 mp3 流式传输到网络

javascript - 从 angular/javascript 应用程序进行 http2 ajax 调用

apache - 在 EV SSL 上使用 3 个域进行错误的重定向