C++
C++
Example: Http.DownloadAppend method
Demonstrates the DownloadAppend method.Chilkat C++ Downloads
#include <CkHttp.h>
#include <CkStringBuilder.h>
#include <CkFileAccess.h>
void ChilkatSample(void)
{
bool success = false;
const char *targetPath = "c:/temp/qa_output/download.txt";
CkHttp http;
http.put_KeepResponseBody(true);
// Assume the target file in the local filesystem does not yet exist.
success = http.DownloadAppend("https://chilkatsoft.com/testData/helloWorld.txt",targetPath);
int statusCode = http.get_LastStatus();
if (statusCode == 0) {
// Unable to either send the request or get the response.
std::cout << http.lastErrorText() << "\r\n";
return;
}
// Should be 200.
std::cout << "Response status code: " << statusCode << "\r\n";
// Examine the contents of the file.
CkStringBuilder sb;
sb.LoadFile(targetPath,"utf-8");
std::cout << sb.getAsString() << "\r\n";
// Output:
// Response status code: 200
// Hello World!
// Download another text file and append to the target file.
success = http.DownloadAppend("https://chilkatsoft.com/testData/this_is_a_test.txt",targetPath);
statusCode = http.get_LastStatus();
if (statusCode == 0) {
// Unable to either send the request or get the response.
std::cout << http.lastErrorText() << "\r\n";
return;
}
// Should be 200.
std::cout << "Response status code: " << statusCode << "\r\n";
// Examine the contents of the file.
sb.LoadFile(targetPath,"utf-8");
std::cout << sb.getAsString() << "\r\n";
// Output:
// Response status code: 200
// Hello World!This is a Test.
// Delete the local target file.
CkFileAccess fac;
fac.FileDelete(targetPath);
// Try to download a file that does not exist:
success = http.DownloadAppend("https://chilkatsoft.com/testData/does_not_exist.txt",targetPath);
statusCode = http.get_LastStatus();
if (statusCode == 0) {
// Unable to either send the request or get the response.
std::cout << http.lastErrorText() << "\r\n";
}
else {
// We got a response, and we already know it wasn't a 200 success response.
// It should be a 404 not found.
std::cout << "Response status code: " << statusCode << "\r\n";
// Examine the response body.
std::cout << "Response body:" << "\r\n";
std::cout << http.lastResponseBody() << "\r\n";
}
}