Установка соединения HTTP2 с AVS (библиотека запросов Python)

Я подписан на амазонки. руководство по созданию приложения Python, которое может получить доступ к Alexa. Я получил свои токены доступа/обновления и пытаюсь открыть соединение HTTP2 с AVS.

Поскольку я делаю это на python, я использовал библиотеку requests для управления все мои HTTP-соединения. Однако я не могу пройти первый шаг по открытию соединения с AVS. Я думаю, проблема просто в синтаксисе моего запроса, так как я не уверен, как определенные элементы запроса на получение должны быть представлены в HTTP-вызове. Конкретно,

Чтобы установить нисходящий поток, ваш клиент должен сделать запрос GET к /{{версия API}}/directives в течение 10 секунд после открытия соединения с AVS. Запрос должен выглядеть следующим образом:

1 :method = GET
2 :scheme = https
3 :path = /{{API version}}/directives
4 authorization = Bearer {{YOUR_ACCESS_TOKEN}}

Для начала та часть инструкции, где указано

...в течение 10 секунд после открытия соединения с AVS

Будет ли это отдельный вызов от запроса GET к /API version/directives? Если да, то как это будет выглядеть?

Затем для фактического вызова /API version/directives мой код выглядит так (Python):

def establishDownstream():
  url = "https://avs-alexa-na.amazon.com/v20160207/directives"
  foo = "Bearer " + ACCESS_KEY
  payload = {"authorization" : foo}
  g = requests.get(url, params=payload)

Я полагаю, что, поскольку это вызов requests.get(), позаботится о :method = GET, поскольку URL-адрес начинается с https://, позаботится о :scheme = https, а сам URL-адрес позаботится о пути (опять же, поправьте меня, если я ошибаюсь ). Затем мне просто нужно передать свой ключ доступа в качестве значения в authorization, что я и делаю через params. Однако это не приводит к успеху (конкретное сообщение об ошибке — requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:590)).

Я действительно не знаю, что здесь происходит. Все руководства, которые я нашел в Интернете по протоколам HTTP-запросов, структурируют свои запросы в блочной форме, а не через библиотеку Python, поэтому у меня нет примеров для работы.

Любая помощь приветствуется!


person David Cai    schedule 21.06.2016    source источник
comment
Я не думаю, что запросы поддерживают http 2   -  person jonrsharpe    schedule 21.06.2016
comment
У меня сложилось впечатление, что HTTP/2 был, так сказать, в первую очередь скрытым обновлением, и большинство протоколов, таких как GET и POST, были одинаковыми...? Кроме того, requests отлично работал, когда я использовал его для получения токена доступа, также от Amazon.   -  person David Cai    schedule 21.06.2016
comment
Вы искали сообщение об ошибке? См., например. github.com/kennethreitz/requests/issues/3006   -  person jonrsharpe    schedule 21.06.2016
comment
@jonrsharpe, ты прав, это не так. Существует гипер-библиотека, которая работает, но она находится на стадии альфа-тестирования hyper.readthedocs. io/en/latest/quickstart.html   -  person Padraic Cunningham    schedule 21.06.2016
comment
Документы фактически рекомендуют гипер для использования с python https://github.com/http2/http2-spec/wiki/Implementations   -  person Padraic Cunningham    schedule 21.06.2016