首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊Polly API

亚马逊Polly API
EN

Stack Overflow用户
提问于 2017-06-26 23:32:58
回答 1查看 1.5K关注 0票数 6

我正在尝试使用。

有人能帮我吗?

我正在使用Java和OkHttp3,并尝试这样做:

代码语言:javascript
复制
    String url = "https://polly.us-west-2.amazonaws.com/v1/speech";
    String postBody = "{\"OutputFormat\":\"mp3\",\"Text\":\"Some text to listen\",\"TextType\":\"text\",\"VoiceId\":\"Joanna\"}";

    MediaType mediaType = MediaType.parse("application/json; charset=utf-8");

    OkHttpClient client = new OkHttpClient.Builder()
            .connectTimeout(30, TimeUnit.SECONDS)
            .readTimeout(30, TimeUnit.SECONDS)
            .build();



    Request request = new Request.Builder()
            .url(url)
            .addHeader("Authorization", "AWS <accessKey>:<secretKey>")
            .post(RequestBody.create(mediaType, postBody))
            .build();

    Response response = client.newCall(request).execute();

并收到"403禁止“的答复。然后,我尝试在网上完成这个帖子请求,并收到了以下消息:

我做错了什么?我该做些什么?谢谢!

亚马逊文档:链接

请不要建议我使用SDK!

我读过,但仍然什么也不懂。

  1. 我知道我的secretKey是秘密的,我需要使用加密。
  2. 我需要像描述这里那样做请求,但我不知道如何提出自己的请求.我的参数:method=POSThost=polly.us-west-2.amazonaws.comendpoint=https://polly.us-west-2.amazonaws.com/v1/speechregion=us-west-2content-type=application/jsonbody of post request={...}accessKey=...secretKey=...以及如何使用OkHttp发出此请求?求你了救命!
EN

回答 1

Stack Overflow用户

发布于 2017-06-27 00:39:16

addHeader("Authorization", "AWS <accessKey>:<secretKey>"),从未在AWS上做过。你的秘密钥匙是秘密的。

通过对请求进行签名来验证请求,使用基于秘密密钥的一系列HMAC-SHA迭代。

有充分的理由不喜欢使用SDK,但是您需要阅读和理解生成签名的文档。

当您使用AWS命令行接口(AWS CLI)或其中一个AWS SDK向AWS发出请求时,这些工具会使用您在配置工具时指定的访问键自动为您签名请求。当您使用这些工具时,您不需要学习如何自己签署请求。但是,当您手动为AWS创建HTTP请求时,您必须自己对请求进行签名。 http://docs.aws.amazon.com/general/latest/gr/signature-version-4.html

从上面的链接开始,详细解释了签名过程。

所有区域的所有服务都支持签名版本4。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44770155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档