nghttp2如何建立下载通道? (c/c++) (AVS)

Posted

技术标签:

【中文标题】nghttp2如何建立下载通道? (c/c++) (AVS)【英文标题】:How establish a download channel with nghttp2? (c/c++) (AVS) 【发布时间】:2017-01-20 09:52:51 【问题描述】:

在我查看了 AVS 迁移的文档后 (https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/docs/migration-guide)

我在 ssl 连接完成后使用“nghttp2_submit_request”发出请求,该请求将发送一个 HEADER 帧。数据如下:

:方法:GET

:方案:https

:路径:/v20160207/directives

授权:承载 access_token

我发现了这个:

如果 access_token 无效,它会响应一个 json 格式的字符串:

"header":"namespace":"System","name":"Exception","messageId":"83e5e334-5470-43c4-86d7-be5cbc19a4bd","payload":"code" :"UNAUTHORIZED_REQUEST_EXCEPTION","description":"无法验证请求。请提供有效的授权令牌。"

但如果 access_token 有效,它会响应一个 GOAWAY 帧。

所以。我现在该怎么办?谁能帮我吗?不胜感激```

【问题讨论】:

【参考方案1】:

这似乎是一个悲伤的故事...... :(

我用“companionService”运行“javaclient”客户端来获取access_token

我刚刚通过 access_token 到我的测试客户端。不关闭“javaclient”

今天早上,我偶然关闭了它。所以它连接了。

然后我在测试客户端打开的情况下测试 javaclient 打开 .... GOAWAY 帧按预期出现。

然后我关闭javaclient,运行测试客户端,GOAWAY帧不来。

这似乎是一个悲伤的故事.....

在这种情况下,AVS 似乎无法说出错误信息...

================================================ =====

我会在完全测试后关闭它...

【讨论】:

我也有同样的问题。我的请求通过 Jetty 在 Java 中运行良好,但在 nghttp2 中却不行。 Alexa 出于未知原因关闭了连接。 :-/ 我的情况是:两个客户端同时使用了一个access_token。只需关闭一个客户端,另一个将正常工作。

以上是关于nghttp2如何建立下载通道? (c/c++) (AVS)的主要内容,如果未能解决你的问题,请参考以下文章

centos6.5/6.8上安装nghttp2失败

如何使用 nghttp2 解决“空响应”错误?

[nghttp2]压测工具,源码编译并进行deb打包过程

nghttp2 多部分 POST 消息

如何优雅地停止使用 nghttp2 asio 构建的 HTTP2 服务器

如何在 Windows x64 上使用 openSSL 和 nghttp2 编译 cURL?