51 URI& operator = (
const char*);
53 bool operator == (
const URI&)
const;
55 bool operator == (
const char*)
const;
56 bool operator != (
const URI&)
const;
58 bool operator != (
const char*)
const;
83 inline uint16_t
GetPort()
const {
return m_port; }
89 inline void SetPort(uint16_t value) { m_port = value; }
123 segment.erase(0, segment.find_first_not_of(
'/'));
124 segment.erase(segment.find_last_not_of(
'/') + 1);
125 m_pathSegments.push_back(segment);
126 m_pathHasTrailingSlash =
false;
140 m_pathSegments.push_back(segment);
142 m_pathHasTrailingSlash = (!segments.empty() && segments.back() ==
'/');
197 void ExtractAndSetAuthority(
const Aws::String& uri);
200 void ExtractAndSetQueryString(
const Aws::String& uri);
201 bool CompareURIParts(
const URI& other)
const;
203 Scheme m_scheme = Scheme::HTTP;
207 bool m_pathHasTrailingSlash =
false;
void CanonicalizeQueryString()
void SetScheme(Scheme value)
Aws::String GetFormParameters() const
void AddQueryStringParameter(const char *key, const Aws::String &value)
void AddQueryStringParameter(const Aws::Map< Aws::String, Aws::String > &queryStringPairs)
void SetPath(const Aws::String &value)
void AddPathSegments(T pathSegments)
static Aws::String URLEncodePath(const Aws::String &path)
Aws::String GetURIString(bool includeQueryString=true) const
const Aws::String & GetAuthority() const
const Aws::String & GetQueryString() const
Aws::String GetURLEncodedPath() const
QueryStringParameterCollection GetQueryStringParameters(bool decode=true) const
Aws::String GetURLEncodedPathRFC3986() const
void SetAuthority(const Aws::String &value)
void AddPathSegment(T pathSegment)
void SetQueryString(const Aws::String &str)
static Aws::String URLEncodePathRFC3986(const Aws::String &path)
void SetPort(uint16_t value)
Aws::String GetPath() const
static Aws::Vector< Aws::String > Split(const Aws::String &toSplit, char splitOn)
Splits a string on a delimiter (empty items are excluded).
Aws::MultiMap< Aws::String, Aws::String > QueryStringParameterCollection
bool s_compliantRfc3986Encoding
static const uint16_t HTTPS_DEFAULT_PORT
static const uint16_t HTTP_DEFAULT_PORT
AWS_CORE_API const char * SEPARATOR
AWS_CORE_API void SetCompliantRfc3986Encoding(bool compliant)
std::basic_stringstream< char, std::char_traits< char >, Aws::Allocator< char > > StringStream
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
std::multimap< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > MultiMap
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector