[英]golang proper http2 request
I want to make an http/2 request in go and got to a few issues there.我想在 go 中发出 http/2 请求,并在那里遇到了一些问题。 How to make proper http/2 requests in go?
如何在 go 中发出正确的 http/2 请求?
Error: Get "https://webhook.site/aae1e0ab-3e48-49c8-8cd0-526e12ee4077": http2: unexpected ALPN protocol "";错误:获取“https://webhook.site/aae1e0ab-3e48-49c8-8cd0-526e12ee4077”:http2:意外的ALPN协议“”; want "h2" (Why? Other sites are working)
想要“h2”(为什么?其他网站都在工作)
Code:代码:
t := &http2.Transport{}
c := &http.Client{
Transport: t,
}
r, err := http.NewRequest("GET", "https://webhook.site/aae1e0ab-3e48-49c8-8cd0-526e12ee4077", nil)
if err != nil {
fmt.Println(err)
}
r.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.2 Safari/605.1.15")
r.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
resp, err := c.Do(r)
if err != nil {
fmt.Println(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(body))
```
As was mentioned, that server doesn't support HTTP2:如前所述,该服务器不支持 HTTP2:
PS C:\> curl.exe -I --http2-prior-knowledge https://webhook.site
curl: (16) Error in the HTTP2 framing layer
Contrast with one that does:与一个做对比:
PS C:\> curl.exe -I --http2-prior-knowledge https://example.com
HTTP/2 200
https://curl.se/docs/manpage.html#--http2-prior-knowledge https://curl.se/docs/manpage.html#--http2-prior-knowledge
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.