Python、Requests、およびHTTP/2サポートのHyper HTTP20AdapterをAVS(APIのバージョン20160207)に使用してHTTP/2接続を作成しようとしています。私は同様の質問hereを尋ね、私の主な問題はHTTP/2をサポートしていないリクエストから来ていると判断 - 私はHyperモジュールを使って解決したと思います。AVS V2 HTTP2接続の確立
Amazon's instructionsGET
ダウンチャネルストリーム、次に同じ接続でPOST
SynchronizeState
イベントです。
これは、2つの要求を送信する時、私の試みです:しかし、私は一貫してこのエラーメッセージになっています
downstream = requests.Session()
downstream.mount('https://avs-alexa-na.amazon.com', HTTP20Adapter())
qheader = {"authorization": "Bearer " + ACCESS_KEY}
sheader = {"authorization": "Bearer " + ACCESS_KEY, "Content-Disposition": "form-data; name=metadata","Content-Type": "application/json; charset=UTF-8"}
spayload = {"context": [],"event": {"header":{"namespace":"System","name":"SynchronizeState","messageId":"SyncState",},"payload": {}}}
q = downstream.get("https://avs-alexa-na.amazon.com/v20160207/directives", headers=qheader, stream=True)
s = downstream.post("https://avs-alexa-na.amazon.com/v20160207/events", headers=sheader, data=json.dumps(spayload)
:
INVALID_REQUEST_EXCEPTION, description: No multipart body found in the payload.
をこれは私がでdata=json.dumps(spayload)
ラインを取る場合でも、持続post
を要求し、json = spayload
に置き換えてください。
1)私は指示通り、私は「同じ接続」の両方の要求を作っていることはよく分からない:
は、私は、主に2つの質問があります。私は(私はrequests.Session()
がそれを世話したと思ったが...)?もしそうでなければ、どうすればいいのですか?
2)「ペイロードで検出されたマルチパートボディが見つかりません」というメッセージはどうすれば解決できますか?私は彼らのexample SynchronizeState eventを正確に送った、そしてそれは特に空のペイロードを含むと言った。
ありがとうございました!何でも感謝しています!