Sample code for 30+ languages & platforms
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

Chilkat2 PHP
<?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";