protected String getCanonicalizedQueryString(SignableRequest<?> request) {
        /*
         * If we're using POST and we don't have any request payload content,
         * then any request query parameters will be sent as the payload, and
         * not in the actual query string.
         */
        if (SdkHttpUtils.usePayloadForQueryParameters(request))
            return "";
        return this.getCanonicalizedQueryString(request.getParameters());
    }
Signing protocol expects the param values also to be sorted after url
encoding in addition to sorted parameter names.
aws-java-sdk-core/src/main/java/com/amazonaws/auth/AbstractAWSSigner.java