Downloading Part of a Document
When a download is interrupted before it is complete, your application needs to be able to retrieve only the part of the document that was not received. The HTTP/1.1 specification and the SourcePro HTTP classes enable you to do this through the
HTTP Range header.
Example 14 uses a simple
GET request to retrieve the first 500 bytes of a document.
Example 14 – Retrieving part of a document with RWHttpClient
RWHttpClient client = RWHttpSocketClient::make();
// initialize, and connect the client…
RWHttpRangeHeader rangeHeader(0, 499); // 1
RWHttpHeaderList headerlist;
headerlist.addHeader(rangeHeader); // 2
RWHttpRequest request(RWHttpRequest::Get, "/", headerlist); // 3
client.submit(request);
// retrieve reply from the server
RWHttpAgent also enables you to retrieve a portion of a document.
Example 15 shows how the previous example is implemented using
RWHttpAgent.
Example 15 – Retrieving part of a document with RWHttpAgent
RWHttpAgent agent;
RWTIOUResult<RWHttpReply> replyIOU;
replyIOU = agent.executeGetRange("http://www.perforce.com/",
0, 499);
For more information about partial downloads, see the ResumableDownload sample program distributed with the product.
NOTE: Sample programs are located in the examples directory created for your installation. For more information, see Installing and Building Your SourcePro Products and Building Your Applications.