Возникли проблемы с подключением к голосовой службе Alexa с помощью http/2 с помощью Go

Я пытаюсь установить нисходящий канал, как описано https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/docs/managing-an-http-2-connection#Creating%20an%20HTTP/2%20Connection Я пишу свой клиент на 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)
}

Проблема в том, что мой клиент выдает следующую ошибку после запроса: Get https://avs-alexa-na.amazon.com/v1/directives: неверный ответ HTTP "\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x10\x00 \х00\х03\х00\х00\х00".

Я не уверен, что с этим делать. Я подозреваю, что Go по какой-то причине не использует http/2 и поэтому не может обработать ответ, но я не знаю, почему это так. Я использую Go 1.6.1, который должен использовать его автоматически. Любая помощь будет принята с благодарностью.


person Malek Katabi    schedule 19.05.2016    source источник


Ответы (1)


Оказывается, проблема заключалась в ошибке в Go 1.6.1, из-за которой HTTP-клиенты по умолчанию не использовали http/2. Обновление до 1.6.2 решило проблему. Проблема Github: https://github.com/golang/go/issues/14391

person Malek Katabi    schedule 13.06.2016