2.1.21.14 okutil_http_range_request


Description

Download large datasets

Syntax

bool okutil_http_range_request( string * pstrFile, LPCOSTR lpcszUrl, const HttpRangeRequestParameters * lpParameters = NULL, StringArray * psaResponseHeaders = NULL, StringArray * psaLogs = NULL )

Parameters

pstrFile
[output] the download file
lpcszUrl
[input] the URL specify the target file to download
lpParameters
[input] request settings
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
};
psaResponseHeaders
[output] response
psaLogs
[output] error messages

Return

true if succcess, otherwise false

Examples

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, &parameters, &saResponseHeaders, &saLogs);
}

Remark

See Also

Header to Included

origin.h

Reference