Java 在改装时访问aws api网关时,请求签名不匹配

Java 在改装时访问aws api网关时,请求签名不匹配,java,android,amazon-web-services,retrofit,aws-api-gateway,Java,Android,Amazon Web Services,Retrofit,Aws Api Gateway,我已经使用okhttp aws签名器库对aws请求进行签名,并在Android上使用改型2进行传递。我还在lib存储库中询问这个问题 我每次调用改型API时都会出错。密钥和访问密钥很好,因为它与邮递员一起工作。库在Kotlin中,我的应用程序在Java中,但我认为这并不重要,对吗?你能告诉我是怎么回事吗 public class AwsSigingHeaderInterceptor implements Interceptor @Override public Response inter

我已经使用okhttp aws签名器库对aws请求进行签名,并在Android上使用改型2进行传递。我还在lib存储库中询问这个问题

我每次调用改型API时都会出错。密钥和访问密钥很好,因为它与邮递员一起工作。库在Kotlin中,我的应用程序在Java中,但我认为这并不重要,对吗?你能告诉我是怎么回事吗

public class AwsSigingHeaderInterceptor implements Interceptor 

@Override
public Response intercept(Chain chain) throws IOException {


Request request = chain.request();
Request newrequest = request.newBuilder()
        .cacheControl(CacheControl.FORCE_NETWORK)
        .addHeader("Method", "POST")
        .addHeader("Host", request.url().host())
        .addHeader("X-Amz-Date", DateUtil.getAwsDate())
        .addHeader("Accept", Constants.ACCEPT)
        .addHeader("Content-Type", Constants.CONTENT_TYPE_JSON).build();


OkHttpAwsV4Signer okHttpAwsV4Signer = new OkHttpAwsV4Signer(Constants.REGION, Constants.SERVICE_NAME);

newrequest = okHttpAwsV4Signer.sign(newrequest, Constants.ACCESS_KEY_ID, Constants.ACCESS_SECRET_KEY);


return chain.proceed(newrequest);
}

}
这是打包的标题授权密钥,打包了aws的签名人

Authorization: AWS4-HMAC-SHA256 Credential=AKIAIR5PPPODHO6F2NCA/20190207/us-east-1/execute-api/aws4_request, SignedHeaders=accept;cache-control;content-type;host;method;x-amz-date, Signature=5521d5b220cb427ddbcbad5f9bda6bd69043c779e67999d3ee92957e45112479
这是我得到的一个错误,我应该得到一些JSON对象

{“message”:“我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档


已解决。只需删除以下标题选项:.addHeader(“方法”、“发布”).addHeader(“接受”,常量.Accept)。addHeader(“内容类型”,常量.Content\u类型\u JSON)