Download large datasets
bool okutil_http_range_request( string * pstrFile, LPCOSTR lpcszUrl, const HttpRangeRequestParameters * lpParameters = NULL, StringArray * psaResponseHeaders = NULL, StringArray * psaLogs = NULL )
struct HttpRangeRequestParameters { unsigned __int64 nMaximumRangeCount; // default: 32 unsigned __int64 nMinimumRangeSize; // default: 3 * 1024 * 1024 bytes unsigned __int64 nMaximumParallelDownloads; // default: 10 unsigned __int64 nDelayBetweenRequests; // default: 100 ms const char* lpcszRequestHeaders; // lines separated by '\n', e.g.: "Accept-Encoding:gzip,deflate\nAccept:*/*" int nResolveTimeout; // default: 30000 ms int nConnectTimeout; // default: 30000 ms int nSendTimeout; // default: 30000 ms int nReceiveTimeout; // default: 30000 ms bool bConditionalRequest; // default: true bool bCheckCertificate; // default: true bool bAcceptRangeOptional; // default: false };
true if succcess, otherwise false
EX1
void okutil_http_range_request_ex() { string url = "https://github.com/opencv/opencv/releases/download/4.11.0/opencv-4.11.0-docs.zip"; HttpRangeRequestParameters parameters; parameters.nMinimumRangeSize = 1024 * 1024; // default: 1 MB parameters.nMaximumParallelDownloads = 16; string path; StringArray saResponseHeaders, saLogs; bool bRet = okutil_http_range_request(&path, url, ¶meters, &saResponseHeaders, &saLogs); }
origin.h