Perl
Perl
Explaining the Rest ClearResponseBodyStream Method
See more Azure Cloud Storage Examples
The ClearResponseBodyStream method would be needed if your applicaiton called SetResponseBodyStream to send the response to a stream for one request, but then wants to subsequently do something else. The application must call ClearResponseBodyStream to no longer send responses to the stream.Chilkat Perl Downloads
use chilkat();
$success = 0;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$rest = chilkat::CkRest->new();
# Connect to the web server
$bTls = 1;
$port = 443;
$bAutoReconnect = 1;
$success = $rest->Connect("www.chilkatsoft.com",$port,$bTls,$bAutoReconnect);
if ($success != 1) {
print $rest->lastErrorText() . "\r\n";
exit;
}
# Setup a file stream for the download
$fileStream = chilkat::CkStream->new();
$fileStream->put_SinkFile("qa_output/starfish.jpg");
# Indicate that the call to FullRequestNoBody should send the response body
# to fileStream if the response status code is 200.
# If a non-success response status code is received, then nothing
# is streamed to the output file and the error response is returned by FullRequestNoBody.
$expectedStatus = 200;
$rest->SetResponseBodyStream($expectedStatus,1,$fileStream);
$responseStr = $rest->fullRequestNoBody("GET","/images/starfish.jpg");
if ($rest->get_LastMethodSuccess() == 0) {
# Examine the request/response to see what happened.
print "response status code = " . $rest->get_ResponseStatusCode() . "\r\n";
print "response status text = " . $rest->responseStatusText() . "\r\n";
print "response header: " . $rest->responseHeader() . "\r\n";
print "response body (if any): " . $responseStr . "\r\n";
print "---" . "\r\n";
print "LastRequestStartLine: " . $rest->lastRequestStartLine() . "\r\n";
print "LastRequestHeader: " . $rest->lastRequestHeader() . "\r\n";
exit;
}
print "downloaded starfish.jpg" . "\r\n";
# Clear the response body stream previously set in the call to SetResponseBodyStream.
$rest->ClearResponseBodyStream();
# Download something else, but this time send the response body to bd.
$bd = chilkat::CkBinData->new();
$success = $rest->FullRequestNoBodyBd("GET","/images/penguins.jpg",$bd);
if ($success == 0) {
# Examine the request/response to see what happened.
print "response status code = " . $rest->get_ResponseStatusCode() . "\r\n";
print "response status text = " . $rest->responseStatusText() . "\r\n";
print "response header: " . $rest->responseHeader() . "\r\n";
print "response body (if any): " . $bd->getString("utf-8") . "\r\n";
print "---" . "\r\n";
print "LastRequestStartLine: " . $rest->lastRequestStartLine() . "\r\n";
print "LastRequestHeader: " . $rest->lastRequestHeader() . "\r\n";
exit;
}
# Save the contents of bd to a file.
$success = $bd->WriteFile("qa_output/penguins.jpg");
print "Success: " . $success . "\r\n";