8#include <aws/core/Core_EXPORTS.h>
10#include <aws/core/http/URI.h>
11#include <aws/core/http/HttpTypes.h>
12#include <aws/core/utils/memory/AWSMemory.h>
13#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
14#include <aws/core/utils/stream/ResponseStream.h>
15#include <aws/core/utils/UUID.h>
16#include <aws/core/monitoring/HttpClientMetrics.h>
105 m_uri(uri), m_method(method), m_isEvenStreamRequest(false)
133 virtual void AddContentBody(
const std::shared_ptr<Aws::IOStream>& strContent) = 0;
171 return m_uri.GetURIString(includeQueryString);
185 return m_uri.GetQueryString();
192 m_uri.CanonicalizeQueryString();
199 return m_uri.GetQueryStringParameters();
206 m_uri.AddQueryStringParameter(key, value);
577 m_requestHash = std::make_pair(algorithmName, hash);
579 const std::pair<Aws::String, std::shared_ptr<Aws::Utils::Crypto::Hash>>&
GetRequestHash()
const {
return m_requestHash; }
583 m_responseValidationHashes.emplace_back(algorithmName, hash);
587 inline void SetServiceSpecificParameters(
const std::shared_ptr<ServiceSpecificParameters> &serviceSpecificParameters) { m_serviceSpecificParameters = serviceSpecificParameters; }
594 bool m_isEvenStreamRequest =
false;
603 std::pair<Aws::String, std::shared_ptr<Aws::Utils::Crypto::Hash>> m_requestHash;
605 std::shared_ptr<ServiceSpecificParameters> m_serviceSpecificParameters;
std::shared_ptr< ServiceSpecificParameters > GetServiceSpecificParameters()
const Aws::String & GetQueryString() const
bool HasAwsSessionToken() const
bool HasContentLength() const
const ContinueRequestHandler & GetContinueRequestHandler() const
HttpMethod GetMethod() const
QueryStringParameterCollection GetQueryStringParameters() const
bool HasAwsAuthorization() const
virtual void SetHeaderValue(const Aws::String &headerName, const Aws::String &headerValue)=0
void SetApiVersion(const Aws::String &value)
virtual void SetResponseStreamFactory(const Aws::IOStreamFactory &factory)=0
Aws::String GetResolvedRemoteHost() const
bool HasContentType() const
bool HasApiVersion() const
virtual HeaderValueCollection GetHeaders() const =0
const Aws::String & GetCookie() const
const URI & GetUri() const
const Aws::String & GetApiVersion() const
void SetRequestHash(const Aws::String &algorithmName, const std::shared_ptr< Aws::Utils::Crypto::Hash > &hash)
bool IsEventStreamRequest()
virtual void AddContentBody(const std::shared_ptr< Aws::IOStream > &strContent)=0
void SetSigningRegion(const Aws::String ®ion)
void SetContinueRequestHandle(const ContinueRequestHandler &continueRequestHandler)
void SetCookie(const Aws::String &value)
virtual const Aws::IOStreamFactory & GetResponseStreamFactory() const =0
const Aws::String & GetAwsSessionToken() const
const DataSentEventHandler & GetDataSentEventHandler() const
const DataReceivedEventHandler & GetDataReceivedEventHandler() const
virtual void DeleteHeader(const char *headerName)=0
const Aws::String & GetAwsAuthorization() const
void SetAwsSessionToken(const Aws::String &value)
bool HasAcceptCharSet() const
virtual const Aws::String & GetHeaderValue(const char *headerName) const =0
virtual std::shared_ptr< Aws::Crt::Http::HttpRequest > ToCrtHttpRequest()
const Aws::String & GetTransferEncoding() const
const Aws::String & GetDate() const
HttpRequest(const URI &uri, HttpMethod method)
void SetUserAgent(const Aws::String &value)
void SetHeadersReceivedEventHandler(const HeadersReceivedEventHandler &headersReceivedEventHandler)
void SetDataReceivedEventHandler(DataReceivedEventHandler &&dataReceivedEventHandler)
void SetAuthorization(const Aws::String &value)
void SetVia(const Aws::String &value)
void SetDataReceivedEventHandler(const DataReceivedEventHandler &dataReceivedEventHandler)
Aws::String GetURIString(bool includeQueryString=true) const
const Aws::String & GetAuthorization() const
void SetContentType(const Aws::String &value)
const HeadersReceivedEventHandler & GetHeadersReceivedEventHandler() const
const Aws::String & GetContentLength() const
void SetAcceptEncoding(const Aws::String &value)
const Aws::Vector< std::pair< Aws::String, std::shared_ptr< Aws::Utils::Crypto::Hash > > > & GetResponseValidationHashes() const
const Aws::String & GetSigningAccessKey() const
const Aws::String & GetSigningRegion() const
const Aws::String & GetAccept() const
void SetDataSentEventHandler(DataSentEventHandler &&dataSentEventHandler)
void AddQueryStringParameter(const char *key, const Aws::String &value)
virtual const Aws::Monitoring::HttpClientMetricsCollection & GetRequestMetrics() const
void SetSigningAccessKey(const Aws::String &accessKey)
void SetResolvedRemoteHost(const Aws::String &ip)
void SetHeadersReceivedEventHandler(HeadersReceivedEventHandler &&headersReceivedEventHandler)
virtual void SetRequestMetrics(const Aws::Monitoring::HttpClientMetricsCollection &collection)
void SetDataSentEventHandler(const DataSentEventHandler &dataSentEventHandler)
const Aws::String & GetAcceptCharSet() const
bool HasUserAgent() const
const Aws::String & GetAcceptEncoding() const
const Aws::String & GetContentType() const
void SetContentLength(const Aws::String &value)
bool HasAuthorization() const
virtual const std::shared_ptr< Aws::IOStream > & GetContentBody() const =0
void SetEventStreamRequest(bool eventStreamRequest)
virtual void AddRequestMetric(const Aws::String &key, int64_t value)
void SetContinueRequestHandle(ContinueRequestHandler &&continueRequestHandler)
void AddResponseValidationHash(const Aws::String &algorithmName, const std::shared_ptr< Aws::Utils::Crypto::Hash > &hash)
bool HasAcceptEncoding() const
void SetAwsAuthorization(const Aws::String &value)
virtual bool HasHeader(const char *name) const =0
bool HasTransferEncoding() const
const Aws::String & GetVia() const
virtual int64_t GetSize() const =0
void SetServiceSpecificParameters(const std::shared_ptr< ServiceSpecificParameters > &serviceSpecificParameters)
const std::pair< Aws::String, std::shared_ptr< Aws::Utils::Crypto::Hash > > & GetRequestHash() const
const Aws::String & GetUserAgent() const
void SetAccept(const Aws::String &value)
void SetTransferEncoding(const Aws::String &value)
virtual void SetHeaderValue(const char *headerName, const Aws::String &headerValue)=0
void CanonicalizeRequest()
void SetDate(const Aws::String &value)
void SetAcceptCharSet(const Aws::String &value)
std::function< void(const HttpRequest *, HttpResponse *)> HeadersReceivedEventHandler
AWS_CORE_API const char ACCEPT_CHAR_SET_HEADER[]
AWS_CORE_API const char USER_AGENT_HEADER[]
AWS_CORE_API const char SDK_REQUEST_HEADER[]
std::function< void(const HttpRequest *, HttpResponse *, long long)> DataReceivedEventHandler
AWS_CORE_API const char AWS_AUTHORIZATION_HEADER[]
AWS_CORE_API const char CHUNKED_VALUE[]
AWS_CORE_API const char ACCEPT_ENCODING_HEADER[]
Aws::MultiMap< Aws::String, Aws::String > QueryStringParameterCollection
std::function< void(const HttpRequest *, long long)> DataSentEventHandler
AWS_CORE_API const char DECODED_CONTENT_LENGTH_HEADER[]
AWS_CORE_API const char CONTENT_LENGTH_HEADER[]
AWS_CORE_API const char X_AMZN_TRACE_ID_HEADER[]
AWS_CORE_API const char AUTHORIZATION_HEADER[]
AWS_CORE_API const char CONTENT_ENCODING_HEADER[]
AWS_CORE_API const char DATE_HEADER[]
AWS_CORE_API const char AWS_SECURITY_TOKEN[]
AWS_CORE_API const char API_VERSION_HEADER[]
AWS_CORE_API const char AWS_CHUNKED_VALUE[]
AWS_CORE_API const char CONTENT_MD5_HEADER[]
AWS_CORE_API const char X_AMZN_ERROR_TYPE[]
std::function< bool(const HttpRequest *)> ContinueRequestHandler
AWS_CORE_API const char VIA_HEADER[]
AWS_CORE_API const char ACCEPT_HEADER[]
AWS_CORE_API const char AWS_DATE_HEADER[]
AWS_CORE_API const char AMZ_TARGET_HEADER[]
AWS_CORE_API const char AWS_TRAILER_HEADER[]
AWS_CORE_API const char CONTENT_TYPE_HEADER[]
AWS_CORE_API const char TRANSFER_ENCODING_HEADER[]
AWS_CORE_API const char HOST_HEADER[]
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
AWS_CORE_API const char X_AMZ_EXPIRES_HEADER[]
AWS_CORE_API const char COOKIE_HEADER[]
AWS_CORE_API const char SDK_INVOCATION_ID_HEADER[]
Aws::Map< Aws::String, int64_t > HttpClientMetricsCollection
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
std::function< Aws::IOStream *(void) > IOStreamFactory
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Map< Aws::String, Aws::String > parameterMap