当前位置: 首页 > 知识库问答 >
问题:

ApiGateway自动生成SDK“我们计算的请求签名与您提供的签名不匹配”错误

霍书
2023-03-14
    null

呼叫代码:

//code that calls it
        apiClientFactory = new ApiClientFactory();
        apiClientFactory.credentialsProvider(credentialsProvider);
        accountApiClient = apiClientFactory.build(DevsupercoolsoftwareClient.class);
...
    public static InviteCodeResponseModel createInviteCode(InviteCodeRequestModel request) {
        //request has one value, which is set to "USER"
        InviteCodeResponseModel response = accountApiClient.accountInviteCodeGet(request);
        return response;
    }

错误:

Caused by: com.amazonaws.mobileconnectors.apigateway.ApiClientException: {"message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n'POST\n...\n"}
(Service: DevsupercoolsoftwareClient; Status Code: 403; Error Code: null; Request ID: bd8d4c91-7758-11e6-a0a0-69136ab6b7af)
  at com.amazonaws.mobileconnectors.apigateway.ApiClientHandler.handleResponse(ApiClientHandler.java:255)
  at com.amazonaws.mobileconnectors.apigateway.ApiClientHandler.invoke(ApiClientHandler.java:88)
  at java.lang.reflect.Proxy.invoke(Proxy.java:393)
  at $Proxy1.accountInviteCodeGet(Unknown Source)
  at com.camhart.supercoolsoftware.communicator.BackendCommunicator.createInviteCode(BackendCommunicator.java:62)
  at com.camhart.supercoolsoftware.activities.Devices.triggerShareMenu(Devices.java:159)
  at com.camhart.supercoolsoftware.activities.Devices.access$100(Devices.java:27)
  at com.camhart.supercoolsoftware.activities.Devices$2.doInBackground(Devices.java:134)
  at com.camhart.supercoolsoftware.activities.Devices$2.doInBackground(Devices.java:128)
  at android.os.AsyncTask$2.call(AsyncTask.java:295)
  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ... 4 more

共有1个答案

易风华
2023-03-14

AccountInvitEcodeGet的调用试图使用方法体执行HTTP GET调用。看来这是不允许的。一旦我把它改成一个帖子,一切都很好。

我将尝试找到一些描述这种行为的文档。如果可以的话,我会编辑这个或者把它放在评论中。

编辑:我和AWS支持部门谈过了。下面是他们向我指出的是,不可能将消息主体包含在HTTP get请求中。

 类似资料:
  • 我正试图上传一张使用AWS S3 SDK的图片。现在,这以前是有效的,但由于某种原因,它停止了工作,我开始得到这个错误: 现在,当我点击链接时,它会给我一个'NoSuchKey'错误: 我真的不明白这一点,因为我的键实际上只是一个字符串。我也试图上传一些东西,所以显然关键不会存在-我正在努力上传它! 另一个教程来自一个博客,我没有它的链接,但我上面的代码与文档中的这个教程相同。我所做的只是把它移到

  • 我有不同的对象来生成保存在S3中的文件。每个对象调用以下函数来保存文件。 我只有以下几个问题。对象要么总是保存文件,要么永远无法保存文件。 错误是 我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅REST身份验证和SOAP身份验证。(服务:S3,状态代码:403,请求ID:79b6c0a2-0d74-1f30-a4bf-246e9631ccd8,扩

  • 我试图按照教程HTTP://docs.aws.amazon.com/amazons3/latest/api/sigv4-post-example.html使用HTTP post方法将图像上传到s3 bucket。但我每次都得到以下错误 政策如下: 生成策略和签名的代码将粘贴到相关的表单字段中:

  • 我试图使用获取S3 bucket中的对象列表。获取以下异常: 我的代码片段: https://stackoverflow.com/a/30519762/948268--提到键以句点开始。 https://github.com/aws/aws-sdk-js/issues/86--讨论如何确保URI查询字符串参数值的正确编码。但在我的例子中,我使用的是AwsSessionCredentials类。 还

  • 我正试图在iOS上执行AWS上传。我正在遍历一个对象数组,并将大量大小不同的图像(1000+)上传到S3 bucket中。使用: 当我到达大约第700张图像时,上传过程开始变得非常缓慢,然后我开始在随后的每一次图像上传中收到这些错误: 编辑2:每个Yosuke请求的代码(我只是构建了一个请求对象数组,然后循环遍历数组并上传每个请求):

  • 我想从网站content.geappliances.io使用AWS API网关得到响应,但总是得到错误: {“信息”:"我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。\n\n此请求的规范字符串应为\n'GET\n/search/b2b/results\n\n内容类型:\n host:content.geapplications.io\