PHP
Chilkat2 PHP
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 PHP Downloads
<?php
use Chilkat2\BinData;
use Chilkat2\Rest;
use Chilkat2\Stream;
$success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$rest = new Rest();
// Connect to the web server
$bTls = true;
$port = 443;
$bAutoReconnect = true;
try {
$rest->Connect('www.chilkatsoft.com', $port, $bTls, $bAutoReconnect);
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
// Setup a file stream for the download
$fileStream = new Stream();
$fileStream->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, true, $fileStream);
$responseStr = null;
try {
$responseStr = $rest->FullRequestNoBody('GET', '/images/starfish.jpg');
} catch (\Chilkat2\Exception $e) {
// Examine the request/response to see what happened.
echo 'response status code = ', $rest->ResponseStatusCode, "\n";
echo 'response status text = ', $rest->ResponseStatusText, "\n";
echo 'response header: ', $rest->ResponseHeader, "\n";
echo 'response body (if any): ', $responseStr, "\n";
echo "---\n";
echo 'LastRequestStartLine: ', $rest->LastRequestStartLine, "\n";
echo 'LastRequestHeader: ', $rest->LastRequestHeader, "\n";
exit;
}
echo "downloaded starfish.jpg\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 = new BinData();
try {
$rest->FullRequestNoBodyBd('GET', '/images/penguins.jpg', $bd);
} catch (\Chilkat2\Exception $e) {
// Examine the request/response to see what happened.
echo 'response status code = ', $rest->ResponseStatusCode, "\n";
echo 'response status text = ', $rest->ResponseStatusText, "\n";
echo 'response header: ', $rest->ResponseHeader, "\n";
echo 'response body (if any): ', $bd->GetString('utf-8'), "\n";
echo "---\n";
echo 'LastRequestStartLine: ', $rest->LastRequestStartLine, "\n";
echo 'LastRequestHeader: ', $rest->LastRequestHeader, "\n";
exit;
}
// Save the contents of bd to a file.
try {
$bd->WriteFile('qa_output/penguins.jpg');
$success = true;
} catch (\Chilkat2\Exception $e) {
$success = false;
}
echo 'Success: ', ($success ? 'true' : 'false'), "\n";