Perl
Chilkat2 Perl
Example: Http.DownloadAppend method
Demonstrates the DownloadAppend method.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
my $targetPath = 'c:/temp/qa_output/download.txt';
my $http = Chilkat2::Http->new;
$http->KeepResponseBody(1);
# Assume the target file in the local filesystem does not yet exist.
my $success = $http->DownloadAppend('https://chilkatsoft.com/testData/helloWorld.txt', $targetPath);
my $statusCode = $http->LastStatus;
if ($statusCode == 0) {
# Unable to either send the request or get the response.
print $http->LastErrorText, "\n";
exit;
}
# Should be 200.
print 'Response status code: ', $statusCode, "\n";
# Examine the contents of the file.
my $sb = Chilkat2::StringBuilder->new;
$sb->LoadFile($targetPath, 'utf-8');
print $sb->GetAsString(), "\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->LastStatus;
if ($statusCode == 0) {
# Unable to either send the request or get the response.
print $http->LastErrorText, "\n";
exit;
}
# Should be 200.
print 'Response status code: ', $statusCode, "\n";
# Examine the contents of the file.
$sb->LoadFile($targetPath, 'utf-8');
print $sb->GetAsString(), "\n";
# Output:
# Response status code: 200
# Hello World!This is a Test.
# Delete the local target file.
my $fac = Chilkat2::FileAccess->new;
$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->LastStatus;
if ($statusCode == 0) {
# Unable to either send the request or get the response.
print $http->LastErrorText, "\n";
} else {
# We got a response, and we already know it wasn't a 200 success response.
# It should be a 404 not found.
print 'Response status code: ', $statusCode, "\n";
# Examine the response body.
print "Response body:\n";
print $http->LastResponseBody, "\n";
}