Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang:解释DumpRequest和DumpResponse HTTP/2_Go_Http2_Glide Golang - Fatal编程技术网

Golang:解释DumpRequest和DumpResponse HTTP/2

Golang:解释DumpRequest和DumpResponse HTTP/2,go,http2,glide-golang,Go,Http2,Glide Golang,我创建一个客户端并发送http/2请求。使用http2传输 但我明白了 GET/HTTP/1.1 主持人: 在响应转储中,我看到了HTTP/2.0 为什么请求使用HTTP/1.1? 如何更改为HTTP/2.0HTTP/2是二进制的,而不是文本的,用二进制转储将是不可读和无用的。这是故意设计的,而且很好: DumpRequest在其HTTP/1.x连接中返回给定的请求 代表性。它应该只被服务器用来调试客户端 请求。返回的表示仅为近似值;一些 在将初始请求解析为 http.Request。特别是标题

我创建一个客户端并发送http/2请求。使用http2传输 但我明白了 GET/HTTP/1.1 主持人:

在响应转储中,我看到了HTTP/2.0

为什么请求使用HTTP/1.1?
如何更改为HTTP/2.0HTTP/2是二进制的,而不是文本的,用二进制转储将是不可读和无用的。这是故意设计的,而且很好:

DumpRequest在其HTTP/1.x连接中返回给定的请求 代表性。它应该只被服务器用来调试客户端 请求。返回的表示仅为近似值;一些 在将初始请求解析为 http.Request。特别是标题字段名称的顺序和大小写 我们迷路了。多值标头中的值顺序保持不变。 HTTP/2请求以HTTP/1.x格式转储,而不是以原始格式转储 二进制表示法

如果body为true,DumpRequest还将返回body。要做到这一点 使用req.Body,然后用新的io.ReadCloser替换它 产生相同的字节。如果DumpRequest返回错误,则 req未定义

您可以签出实现细节

clientt := &http.Client{
    Timeout: 30 * time.Second,
}
var tr = &http2.Transport{}
clientt.Transport = tr