static Aws::String CanonicalizeRequestSigningString(HttpRequest& request, bool urlEscapePath) { request.CanonicalizeRequest(); Aws::StringStream signingStringStream; signingStringStream << HttpMethodMapper::GetNameForHttpMethod(request.GetMethod()); //double encode paths unless explicitly stated otherwise (for s3 compatibility) URI uriCpy = request.GetUri(); uriCpy.SetPath(uriCpy.GetURLEncodedPath()); signingStringStream << NEWLINE << (urlEscapePath ? uriCpy.GetURLEncodedPath() : uriCpy.GetPath()) << NEWLINE; if (request.GetQueryString().size() > 1 && request.GetQueryString().find("=") != std::string::npos) { signingStringStream << request.GetQueryString().substr(1) << NEWLINE; } else if (request.GetQueryString().size() > 1) { signingStringStream << request.GetQueryString().substr(1) << "=" << NEWLINE; } else { signingStringStream << NEWLINE; } return signingStringStream.str(); }
Aws::String CanonicalizeRequestSigningString(HttpRequest& request) { request.CanonicalizeRequest(); Aws::StringStream signingStringStream; signingStringStream << HttpMethodMapper::GetNameForHttpMethod(request.GetMethod()); signingStringStream << NEWLINE << request.GetUri().GetURLEncodedPath() << NEWLINE; if (request.GetQueryString().size() > 1 && request.GetQueryString().find("=") != std::string::npos) { signingStringStream << request.GetQueryString().substr(1) << NEWLINE; } else if (request.GetQueryString().size() > 1) { signingStringStream << request.GetQueryString().substr(1) << "=" << NEWLINE; } else { signingStringStream << NEWLINE; } return signingStringStream.str(); }