我对 AWS 很陌生,我想在我的 Android 应用程序中使用一项服务。不幸的是,这项服务 AWS AppConfig 还没有移动 SDK,所以我一直在尝试使用 okhttp 向GetConfiguration API发送 GET 请求。
为了签署请求,我使用AWS Android SDK 中的AWS4Signer。我正在提供具有AWSCredentials实施的凭证。
com.amazonaws.Request requestAws = new DefaultRequest(amazonWebServiceRequest, serviceName);
URI uri = URI.create("https://appconfig.us-west-2.amazonaws.com/applications/[applicationID]/environments/[environmentID]/configurations/[configurationID]?client_id=ClientId");
requestAws.setEndpoint(uri);
requestAws.setHttpMethod(HttpMethodName.GET);
AWS4Signer signer = new AWS4Signer();
signer.setServiceName(serviceName);
signer.setRegionName(Regions.US_WEST_2.getName());
signer.sign(requestAws, credentials);
// get relevant authorization headers from requestAws and insert them in the okhttp request as headers
当我向 GetConfiguration 发送请求时,它失败了
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.
我尝试向GetDeploymentStrategy发送请求,并且成功,因此我认为这不是我的凭据或我将它们附加到请求的方式。
我认为问题在于我如何附加请求参数,因为不需要额外请求参数的 API 成功(GetDeploymentStrategy 和 GetApplication),而需要client_id
的 GetConfiguration 失败。
我的问题是:是否有任何示例说明如何使用签名者和请求处理请求参数?
非常感谢。