18 #include <folly/futures/Future.h>
35 typedef std::function<void (double bytesTransfered, double bytesTotal)>
ProgressCallback;
41 Utf8String m_proxyUrl;
42 bool m_validateCertificate =
false;
49 unsigned m_connectionTimeoutSeconds = 60;
50 unsigned m_transferTimeoutSeconds = 60;
52 unsigned m_retriesMax = 0;
53 bool m_followRedirects =
true;
54 bool m_useNewConnection =
false;
85 void SetTimeoutSeconds(
unsigned connectionAndTransferTimeout) {m_connectionTimeoutSeconds = connectionAndTransferTimeout; m_transferTimeoutSeconds = connectionAndTransferTimeout;}
123 Tasks::AsyncTaskPtr<Response>
PerformAsync() {
return m_httpHandler->_PerformRequest(*
this);}
void SetProxy(Utf8StringCR proxyUrl)
Definition: HttpRequest.h:73
bool GetFollowRedirects() const
Definition: HttpRequest.h:95
void SetRequestBody(HttpBodyPtr body)
Definition: HttpRequest.h:77
unsigned GetMaxRetries() const
Definition: HttpRequest.h:108
HttpBodyPtr GetResponseBody() const
Definition: HttpRequest.h:82
void SetCancellationToken(Tasks::ICancellationTokenPtr token)
Definition: HttpRequest.h:110
#define BEGIN_BENTLEY_HTTP_NAMESPACE
Definition: Http.h:17
HttpRequestHeadersR GetHeaders()
Definition: HttpRequest.h:62
const ProgressCallback & ProgressCallbackCR
Definition: HttpRequest.h:36
Tasks::ICancellationTokenPtr GetCancellationToken() const
Definition: HttpRequest.h:111
void SetResponseBody(HttpBodyPtr body)
Definition: HttpRequest.h:81
bool GetValidateCertificate() const
Definition: HttpRequest.h:70
Utf8StringCR GetUrl() const
Definition: HttpRequest.h:65
struct Bentley::Utf8String const & Utf8StringCR
Definition: Bentley.h:241
void SetConnectionTimeoutSeconds(unsigned connectionTimeout)
Definition: HttpRequest.h:87
ProgressCallbackCR GetUploadProgressCallback() const
Definition: HttpRequest.h:117
HttpRequestHeadersCR GetHeaders() const
Definition: HttpRequest.h:63
#define BEHTTP_EXPORT
Definition: Http.h:14
ProgressCallbackCR GetDownloadProgressCallback() const
Definition: HttpRequest.h:114
void SetDownloadProgressCallback(ProgressCallbackCR onProgress)
Definition: HttpRequest.h:113
HttpBodyPtr GetRequestBody() const
Definition: HttpRequest.h:78
Utf8StringCR GetProxy() const
Definition: HttpRequest.h:74
void SetFollowRedirects(bool follow)
Enable or disable following redirects. Default is true.
Definition: HttpRequest.h:94
unsigned GetConnectionTimeoutSeconds() const
Definition: HttpRequest.h:88
bool GetUseNewConnection() const
Definition: HttpRequest.h:100
RefCountedPtr< HttpBody > HttpBodyPtr
Definition: HttpBody.h:20
std::shared_ptr< struct ICancellationToken > ICancellationTokenPtr
Definition: CancellationToken.h:49
Tasks::AsyncTaskPtr< Response > PerformAsync()
Definition: HttpRequest.h:123
BEHTTP_EXPORT Request(Utf8StringCR url, Utf8StringCR method="GET")
void SetRetryOptions(RetryOption option, unsigned maximumRetries=1)
Definition: HttpRequest.h:105
RetryOption const & GetRetryOption() const
Definition: HttpRequest.h:106
BEHTTP_EXPORT folly::Future< Response > Perform()
BEGIN_BENTLEY_HTTP_NAMESPACE typedef std::shared_ptr< struct IHttpHandler > IHttpHandlerPtr
Definition: IHttpHandler.h:15
BEHTTP_EXPORT Utf8String EscapeUnsafeSymbolsInUrl(Utf8StringCR url)
Definition: HttpRequest.h:26
void SetUseNewConnection(bool useNewConnection)
Definition: HttpRequest.h:99
void SetUploadProgressCallback(ProgressCallbackCR onProgress)
Definition: HttpRequest.h:116
RetryOption
Definition: HttpRequest.h:28
#define END_BENTLEY_HTTP_NAMESPACE
Definition: Http.h:18
void SetTimeoutSeconds(unsigned connectionAndTransferTimeout)
Sets connection and transfer timeouts with one value. Default - 60 seconds.
Definition: HttpRequest.h:85
void SetValidateCertificate(bool validate)
Enable or disable server certificate and hostname validation.
Definition: HttpRequest.h:69
Utf8StringCR GetMethod() const
Definition: HttpRequest.h:66
unsigned GetTransferTimeoutSeconds() const
Definition: HttpRequest.h:91
void SetTransferTimeoutSeconds(unsigned transferTimeout)
Definition: HttpRequest.h:90
std::function< void(double bytesTransfered, double bytesTotal)> ProgressCallback
Definition: HttpRequest.h:35