使用Go连接到带有http / 2的Alexa语音服务时遇到问题

时间:2016-05-19 08:02:20

标签: go http2 alexa-voice-service

我正在尝试按照描述here under Creating an http/2 connection.建立一个downchannel我在Go中编写我的客户端,我的代码如下:

api_endpoint := "https://avs-alexa-na.amazon.com/v1/directives"
access_token := fetchAccessToken() //retrieves token from local file
req, err := http.NewRequest("GET", api_endpoint, nil)
if(err != nil){
  panic(err)
}
req.Header.Add("authorization", fmt.Sprintf("Bearer %s",   access_token))
client := &http.Client{}
res, err := client.Do(req)
if(err != nil){
  panic(err)
}

问题是我的客户端在请求后发出以下错误:获取https://avs-alexa-na.amazon.com/v1/directives:格式错误的HTTP响应" \ x00 \ x00 \ x1e \ x04 \ x00 \ x00 \ x00 \ x00 \ x00 \ X00 \ X01 \ X00 \ X00 \ X10 \ X00 \ X00 \ X03 \ X00 \ X00 \ X00&#34 ;.

我不知道如何处理这件事。我怀疑Go由于某种原因没有使用http / 2,因此无法处理响应,但我不知道为什么会这样。我正在使用Go 1.6.1,它应该自动使用它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

事实证明问题是Go 1.6.1中的一个错误导致HTTP客户端默认不使用http / 2。升级到1.6.2解决了这个问题。 Github问题:https://github.com/golang/go/issues/14391