我正在尝试从Go发送HTTP/2请求,但我做不到。
client := &net.Client{}
request, err := net.NewRequest("GET", someUrl, nil)
if err != nil {
return "", err
}
// some headers
// some cookies
client.Transport = &http2.Transport{}
response, err := client.Do(request)如果我打印转储请求
dr, _ := httputil.DumpRequest(request, false)
fmt.Println(string(dr))然后,结果如下
GET /some/url HTTP/1.1
// some headers
// some cookies为什么?
发布于 2021-11-18 17:18:24
我试着从Go发送HTTP/2请求,但我做不到. := httputil.DumpRequest(请求,false) fmt.Println(字符串( dr )) 然后,结果如下 获取/一些/url HTTP/1.1 /某些标题//一些cookie
DumpRequest不会打印在线路上发送的请求,并且特别不适合检查是否使用了HTTP/2。文档明确声明:
DumpRequest在其HTTP/1.x有线表示形式中返回给定的请求。服务器只应使用它来调试客户端请求。返回的表示形式是近似(仅为);将初始请求解析为http.Request时丢失了一些初始请求的细节。特别是,顺序和头字段名的大小写丢失了。多值报头中的值顺序保持不变.HTTP/2请求被转储为HTTP1.x形式的,而不是它们最初的二进制表示形式。“
https://stackoverflow.com/questions/70018694
复制相似问题