我正在尝试使用 OkHTTP 在 android 中签署对 AWS API 的 HTTP 请求。我使用了这个Question中的代码。AWS 的文档根本没有帮助。我很困扰。这是迄今为止我发现的唯一易于理解和实现的代码。但它也无法解决我的问题。我没有使用 API 传递任何数据,它只是简单的 API,我必须调用它并接收消息。
我的代码
AWSCredentials credentials = new BasicAWSCredentials(access_key_id.trim(), secret_access_key.trim());
String API_GATEWAY_SERVICE_NAME = "execute-api";
Request requestAws = new DefaultRequest(API_GATEWAY_SERVICE_NAME);
URI uri = URI.create(url);
requestAws.setEndpoint(uri);
requestAws.setResourcePath(url);
requestAws.setHttpMethod(HttpMethodName.POST);
AWS4Signer signer = new AWS4Signer();
signer.setServiceName(API_GATEWAY_SERVICE_NAME);
signer.setRegionName("us-east-2");
signer.sign(requestAws, credentials);
OkHttpClient httpClient = new OkHttpClient();
Map<String, String> headers = requestAws.getHeaders();
List<String> key = new ArrayList<String>();
List<String> value = new ArrayList<String>();
for (Map.Entry<String, String> entry : headers.entrySet()) {
key.add(entry.getKey());
value.add(entry.getValue());
}
okhttp3.Request request …Run Code Online (Sandbox Code Playgroud)