我试图从包含HTTP / 2数据的tcp连接中读取。以下是阅读HEADERS框架的代码 -
curl -v https://127.0.0.1:8000/ -k --http2
我使用curl发送请求为 -
fh type: HEADERS
fh type: 1
fh flag: 5
fh length: 30
fh streamid: 1
stream ended? true
block fragment: 828487418a089d5c0b8170dc6c4d8b7a8825b650c3abb6f2e053032a2f2a
这是我得到的输出(在阅读连接前言和设置之后),如果我使用上面的代码从conn读取 -
JavaAppPackaging
我理解输出,除了块片段部分以及如何将其解码为ascii字符串?我想知道protocol / method / url路径信息。
答案 0 :(得分:0)
答案 1 :(得分:0)
我使用Go hpack库(https://godoc.org/golang.org/x/net/http2/hpack) -
计算出来decoder := hpack.NewDecoder(2048, nil)
hf, _ := decoder.DecodeFull(headersframe.HeaderBlockFragment())
for _, h := range hf {
fmt.Printf("%s\n", h.Name + ":" + h.Value)
}
打印 -
:method:GET
:path:/
:scheme:https
:authority:127.0.0.1:5252
user-agent:curl/7.58.0
accept:*/*